【发布时间】:2011-04-08 11:12:42
【问题描述】:
问题
- 我的核心数据模型有 13 个版本。
- 我已经制作了 13 个映射模型(V1-V2、V2-V3 等)
- 我已开启自动迁移。
- 在两个连续版本(例如 V12-V13)之间迁移时,迁移工作完美
-
在两个非连续版本(例如 V11-V13)之间迁移时,迁移失败并出现以下错误:
Can't find mapping model for migration
我尝试过的
为每个可能的版本组合创建一个映射模型。这可行,但确实很麻烦。
对于第 14 版,我需要制作 14 种不同的映射模型。手动。呃。
代码
这是我为迁移传递的选项:
[persistentStoreCoordinator addPersistentStoreWithType:[self storeType]
configuration:nil
URL:url
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:NO], NSReadOnlyPersistentStoreOption,
nil]
error:&error]){
数据模型
我的数据模型相当复杂,但这里是:http://dl.dropbox.com/u/136780/Engine_V2_DataModel.xcdatamodeld.zip
我现在没有在我的数据模型中使用任何版本哈希修饰符或重命名标识符。
【问题讨论】:
-
为什么有映射模型V1-V2、V2-V3、V3-V4等。什么时候可以有 V1-V14、V2-V14、V3-V14 等?后者允许您一步完成迁移。
-
我的目标是 V1-V2、V2-V3 等设置,因为它更容易。每当您想进行一次迁移时,手动创建 14 个映射模型并不好玩。此外,我看到的所有文档都暗示 V1-V2、V2-V3 等是迁移商店的官方方式。我觉得我做错了什么。
标签: cocoa core-data core-data-migration