没有版本控制的 CoreData 迁移

CoreData migrations without versioning

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

所以我的问题是: 在不添加新版本的情况下更改单个 xcdatamodel 中的数据库是否安全?我试过了,效果很好,但我在互联网上到处都看到警告,说你不能那样做。

iOS9+.

我发现了这个: 但没有证据

如果您的应用处于开发阶段,那么您可以使用一种模型而无需版本控制。

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

正如@pbasdf 指出的那样,自 iOS 9 以来,您可以在不添加任何新模型版本的情况下进行轻量级迁移。源模型(以前的模型版本)被缓存以存储并用作轻量级迁移期间的最后努力。

我在自己的应用程序中成功使用了此功能。虽然我找不到这个记录。就是 WWDC video(18'15 模型缓存)提到的。这就是Core Data有时如此神秘的原因..