我们正在使用Core Data开发应用程序。
首先,应用程序有一个名为MyApp_001.xcdatamodel
的文件,用户已安装它。
然后,我们根据MyApp_001
创建两个分支:MyApp_002
& MyApp_003
。
现在,MyApp_002
有两个型号版本:MyApp_001.xcdatamodel
& MyApp_002.xcdatamodel
,当前版本为MyApp_002.xcdatamodel
,对MyApp_001.xcdatamodel
进行了一些修改。
MyApp_003
有两个型号版本:MyApp_001.xcdatamodel
& MyApp_003.xcdatamodel
,当前版本为MyApp_003.xcdatamodel
,对MyApp_001.xcdatamodel
也进行了一些修改。
令我困惑的是:有些用户首先安装了MyApp_002
,
考虑MyApp_003
不包含模型文件MyApp_002.xcdatamodel
,当他们将应用升级到MyApp_003
时,可能会出现问题?
Core Data如何真正迁移数据?
谢谢!
答案 0 :(得分:0)
要将数据迁移到新模型,必须存在旧模型。
将数据存储从一个模型迁移到新模型时,Core Data需要能够打开数据存储。这意味着您需要商店使用的模型 - 创建它的模型,或者,如果您以前迁移到新模型,则需要最近迁移中使用的模型。如果不存在该模型,则无法进行迁移。
在您的情况下,如果安装版本3的用户可能从版本2升级,则必须存在版本2模型。这是打开使用该模型创建的数据存储的唯一方法。
新模型基于特定的旧模型并不重要。版本2和版本3都基于版本1这一事实完全无关紧要。对迁移至关重要的是当前模型与数据存储使用的模型之间的差异。