我可以执行以下操作吗?
- 从应用的 v1.0 开始。版本数据模型,将新版本指定为事件模式
- 在 appDelegate 中设置正确的选项以使用轻量级迁移创建 NSPersistentStoreCoordinator
- 对模型进行简单更改并更新类。编译并验证一切正常。
- 在不更改版本的情况下再次更改数据模型,并再次更新类
当然,当我运行时,数据模型将不兼容,因为我在没有版本控制的情况下更改了它。但由于我不会发布中间版本,我怀疑从 v1.0 更新到双更新数据模型时数据迁移应该可以正常工作。
这准确吗?
最佳答案
只要满足以下条件,它就会起作用:
- 您已经为每个步骤创建了一个新的模型版本;所以在上面的示例中,最后应该有三个:原始、中间、最终。
- 应用程序必须能够执行从 1 到 3 的轻量级迁移。如果不能,则不会通过 2,前提是磁盘上的数据仍为 1 的结构。
如果所有这些都是真的,那么它将起作用。您甚至可以在最终版本中不发布 v2(尽管它们很小,通常不值得付出努力)。
在开发过程中,我的建议是始终保留 v1 数据,仅更改 v2 并在每次需要调整 v2 时重新迁移。然后就没有中间处理了。然而,在与 Beta 测试人员打交道/合作时,这并不总是可能的。
关于ios - 核心数据轻量级迁移——什么时候版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13568144/