我正在开发一个分阶段推出的应用程序。对于每个sprint,都有数据库更改,因此已实现核心数据迁移。到目前为止,我们已经有3个阶段发布。每当连续升级时,应用程序运行正常。但每当我尝试从版本1升级到版本3时,都无法添加持久性商店'发生错误'。有人可以帮我解决这个问题吗?
答案 0 :(得分:5)
核心数据迁移没有您期望的版本概念。就核心数据而言,只有两个版本,NSPersistentStore
的版本和您当前使用的版本。
要使用轻量级迁移,您必须测试商店的每个版本,并确保它将直接迁移到当前版本。如果没有,那么您不能对该特定用例使用轻量级迁移,您需要开发迁移模型或提出另一种解决方案。
就个人而言,在iOS上,我避免了大量迁移,因为它在内存和时间方面非常昂贵。如果我不能使用轻量级迁移,我通常会探索导出/导入解决方案(例如导出到JSON并导入到新模型中)或查看从服务器刷新数据。
答案 1 :(得分:1)
我的问题是我试图在自动轻量级迁移期间更改我的属性数据类型,因为自动轻量级核心数据迁移不支持数据类型更改。我通过将数据类型重置为较旧的数据来解决此问题。