5

我有一个使用 Core Data 的现有项目,我的xcdatamodeld包中有 3 个版本。到目前为止,我只使用了轻量级迁移,因为我主要添加了新参数和实体,但是我现在希望将现有参数移动到新实体中。我意识到我必须创建一个mapping model来执行此操作,以便在参数之间迁移数据。

我想有些用户使用版本 1 的应用程序版本非常旧,而其他用户则使用版本 2 和 3。

问题:

  1. 我需要创建从所有现有版本到新版本的映射模型,还是仅从最新版本
  2. 我是否需要更改/禁用我的轻量级迁移选项NSPersistentStoreCoordinator?目前我启用了以下选项:

    NSMigratePersistentStoresAutomaticallyOption
    NSInferMappingModelAutomaticallyOption

我认为从 v1 到 v2 到 v3 仍然需要轻量级迁移,但是从 v3 到 v4 需要新的映射模型。我环顾四周,但找不到任何有关这一切如何发生的信息,因为大多数教程仅涵盖 2 个版本。

谢谢

4

1 回答 1

1
  1. 只是从最新版本。
  2. 不。

迁移是按顺序进行的(这就是您需要保留所有模型版本的原因,即使预计不会从第一个版本迁移。

只有在NSMigratePersistentStoresAutomaticallyOption不存在映射模型时才会进行自动迁移。

于 2012-12-05T16:00:27.987 回答