没有版本控制的CoreData迁移

时间:2017-11-21 19:43:52

标签: ios core-data core-data-migration

现在我使用版本控制在数据库中进行任何更改。但它带来了一些问题。例如,很难将功能分支与新的db版本合并到master / dev中,其中某人还添加了新版本。

所以我的问题: 在不添加新版本的情况下,在单个xcdatamodel中更改db是否安全?我试过这样,它可以工作,但在互联网上的任何地方我都看到警告,你不能这样做。

iOS9 +。

我发现了这个:https://stackoverflow.com/a/37264096/5328417,但没有证明

2 个答案:

答案 0 :(得分:0)

如果您的应用处于开发阶段,那么您可以使用一个没有版本控制的模型。

但如果它是在App Store上发布的,那么您必须在进行更改时创建版本(例如添加新属性,添加新实体,重命名属性等)。否则,核心数据将无法执行lightweight migration

答案 1 :(得分:0)

如@pbasdf所述,由于iOS 9,您可以进行轻量级迁移,而无需添加任何新模型版本。源模型(先前的模型版本)被缓存以存储,并在轻量级迁移期间用作最后的努力。

我正在自己的应用程序中成功使用此功能。尽管我找不到此文档。刚才提到的WWDC video(18'15模型缓存)。这正是Core Data有时如此神秘的原因。