cocoa – 在非连续版本之间迁移时出现Core Data Migration错误

cocoa – 在非连续版本之间迁移时出现Core Data Migration错误,第1张

概述问题 >我的核心数据模型有13个版本. >我制作了13种测绘模型(V1-V2,V2-V3等) >我已启用自动迁移功能. >在两个连续版本(例如V12-V13)之间的迁移中,迁移工作完美 >在两个非连续版本(例如V11-V13)之间迁移时,迁移失败并显示错误: 找不到迁移的映射模型 我试过的 为每个可能的版本组合创建映射模型.这有效,但这是一个真正的麻烦. 对于版本14,我需要制作14种不同的映射模 问题

>我的核心数据模型有13个版本.
>我制作了13种测绘模型(V1-V2,V2-V3等)
>我已启用自动迁移功能.
>在两个连续版本(例如V12-V13)之间的迁移中,迁移工作完美
>在两个非连续版本(例如V11-V13)之间迁移时,迁移失败并显示错误:

找不到迁移的映射模型

我试过的

为每个可能的版本组合创建映射模型.这有效,但这是一个真正的麻烦.

对于版本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

我现在没有在我的数据模型中使用任何版本哈希修饰符或重命名标识符.

解决方法 请参阅此Stack Overflow问题: Core Data Migration Across Multiple Version Upgrades

基本上,要点是您不需要创建完整的映射模型集.您只需要在每对连续模型之间映射模型,然后您可以逐步将任何旧模型通过中间模型迁移到最新模型.

根据您的商店,性能可能不会很好,因为您不是一步完成迁移.但是,它可能已经足够好了,并且可能不值得创建完整的映射模型集.您还可以测试此方法的性能,以确定是否需要在模型的非连续版本之间创建映射.

marcus Zarra(Core Data aficionado extraordinaire)的代码如下:http://media.pragprog.com/titles/mzcd/code/ProgressiveMigration/AppDelegate.m

(我正要问这个问题,但多亏了LazyTwitter,Aaron Tuller指出了这个答案:https://twitter.com/tullera/status/57708304683642880)

总结

以上是内存溢出为你收集整理的cocoa – 在非连续版本之间迁移时出现Core Data Migration错误全部内容,希望文章能够帮你解决cocoa – 在非连续版本之间迁移时出现Core Data Migration错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1017334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存