核心数据版本控制和迁移

时间:2011-08-11 05:38:36

标签: iphone core-data core-data-migration

我有已发布应用的核心数据模型的旧版本。现在,在应用程序的下一个版本中,我正在将核心数据模型迁移到新模型。有没有办法在实际迁移到新版本的模型之前从旧模型中获取属性值,或者是否有可能知道是否要进行迁移。

2 个答案:

答案 0 :(得分:2)

迁移时,Core Data实际上会为您移动现有值。如果您正在进行相对简单的迁移,例如添加或删除某些属性,Core Data会尽最大努力使迁移尽可能无缝。在许多情况下,除了设置新模型之外,您不需要进行任何更改。有关详情,请参阅my answer here

答案 1 :(得分:0)

是的,这是可能的。

要从旧模型获取属性值,您需要创建自定义实体迁移策略(NSEntityMigrationPolicy子类)。然后在-createDestinationInstancesForSourceInstance:entityMapping:manager:error:中您将收到源实例,完全取决于您如何从源实例创建目标实例。

有一种方法可以检查给定商店是否与商店协调员模型兼容:-[NSManagedObjectModel isConfiguration:compatibleWithStoreMetadata:]

相关问题