Joh*_*her 6 cocoa core-data core-data-migration
在两个非连续版本(例如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]){
Run Code Online (Sandbox Code Playgroud)
我的数据模型非常复杂,但它是:http://dl.dropbox.com/u/136780/Engine_V2_DataModel.xcdatamodeld.zip
我现在没有在我的数据模型中使用任何版本哈希修饰符或重命名标识符.
请参阅此Stack Overflow问题:跨多个版本升级的核心数据迁移
基本上,要点是您不需要创建完整的映射模型集.您只需要在每对连续模型之间映射模型,然后您可以逐步将任何旧模型通过中间模型迁移到最新模型.
根据您的商店,性能可能不会很好,因为您不是一步完成迁移.但是,它可能已经足够好了,并且可能不值得创建完整的映射模型集.您还可以测试此方法的性能,以确定是否需要在模型的非连续版本之间创建映射.
马库斯Zarra(核心数据狂热爱好者非凡)这里有代码:http://media.pragprog.com/titles/mzcd/code/ProgressiveMigration/AppDelegate.m
(我正要问这个问题,但多亏了LazyTwitter,Aaron Tuller指出了这个答案:https://twitter.com/tullera/status/57708304683642880 )
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |