【问题标题】:Core data versioning and migration核心数据版本控制和迁移
【发布时间】:2011-08-11 05:38:35
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • +1 迁移实际上是将现有持久性存储重写为新版本数据模型所规定的新结构的过程。
    【解决方案2】:

    是的,有可能。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 2021-08-11
      • 2011-10-25
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多