核心数据迁移

时间:2011-06-14 16:52:37

标签: core-data

我在核心数据迁移方面遇到了一些问题。我有我的应用程序1.0,1.1,1.2的3个版本。

对于前两个版本(1.0和1.1),我有相同的数据模型,但对于第三个版本(1.2),我在我的数据模型中做了一些更改。现在我在我的应用程序版本1.2中遇到了不兼容的问题(虽然它的重量变化很小)。

我想我错过了我的应用版本1.1的数据模型版本,因为1.0和1.1的数据模型没有变化,我还没有创建另一个数据模型版本。

我们是否需要为新的应用版本创建数据模型版本,即使版本之间的数据模型没有变化。

对不起,如果我的查询太笨...请建议..

2 个答案:

答案 0 :(得分:1)

不,您不需要为每个应用版本提供数据模型版本。

只是为了确定:当你从1.1升到1.2时,你是否创建了一个新的数据模型版本?或者您只是修改现有的数据模型?因为(轻量级)迁移工作,你应该有不同版本的数据模型;你不应该只修改现有的模型。

另外,您确实编写了代码来执行自动轻量级迁移,对吗?

答案 1 :(得分:1)

如果要更改模型但仍保留打开使用以前版本的模型创建的商店的功能,则必须保留模型的先前版本(作为版本化模型中的版本)。 Core Data无法打开没有兼容型号的商店。因此,如果你想改变 该模型还保留了打开现有商店的能力,您必须:

  1. 确保您拥有版本化的模型 - 如果不这样做,请将当前模型转换为版本化模型。
  2. 在编辑架构之前,请创建当前模型的新版本。
  3. 编辑模型的新当前版本,保持旧版本不变。
  4. 请参考 link 逐步版本控制程序