现在我使用版本控制在数据库中进行任何更改。但它带来了一些问题。例如,很难将功能分支与新的db版本合并到master / dev中,其中某人还添加了新版本。
所以我的问题: 在不添加新版本的情况下,在单个xcdatamodel中更改db是否安全?我试过这样,它可以工作,但在互联网上的任何地方我都看到警告,你不能这样做。
iOS9 +。
我发现了这个:https://stackoverflow.com/a/37264096/5328417,但没有证明
答案 0 :(得分:0)
如果您的应用处于开发阶段,那么您可以使用一个没有版本控制的模型。
但如果它是在App Store上发布的,那么您必须在进行更改时创建版本(例如添加新属性,添加新实体,重命名属性等)。否则,核心数据将无法执行lightweight migration。
答案 1 :(得分:0)
如@pbasdf所述,由于iOS 9,您可以进行轻量级迁移,而无需添加任何新模型版本。源模型(先前的模型版本)被缓存以存储,并在轻量级迁移期间用作最后的努力。
我正在自己的应用程序中成功使用此功能。尽管我找不到此文档。刚才提到的WWDC video(18'15模型缓存)。这正是Core Data有时如此神秘的原因。