1

我可以执行以下操作吗?

  1. 从应用程序的 v1.0 开始。版本数据模型,将新版本指定为活动模式
  2. 在 appDelegate 中设置正确的选项以使用轻量级迁移创建 NSPersistentStoreCoordinator
  3. 对模型进行简单的更改并更新类。编译并验证一切正常。
  4. 在不更改版本的情况下再次更改数据模型,并再次更新类

当然,当我运行时,数据模型将不兼容,因为我在没有版本控制的情况下更改了它。但由于我不会发布中间版本,我怀疑从 v1.0 更新到双更新数据模型时数据迁移应该可以正常工作。

这是准确的吗?

4

1 回答 1

1

只要满足以下条件,它就会起作用:

  1. 您已经为每个步骤创建了一个新的模型版本;所以在你上面的例子中,最后应该有三个:原始、中间、最终。
  2. 应用程序必须能够进行从 1 到 3 的轻量级迁移。如果不能,如果磁盘上的数据仍然是 1 的结构,则它不会经过 2。

如果这一切都是真的,那么它将起作用。您甚至可以在最终版本中不发布 v2(尽管它们很小,而且通常不值得付出努力)。

在开发过程中,我的建议是始终保留 v1 数据,只更改 v2 并在每次需要调整 v2 时重新迁移。那么就没有中间需要处理了。然而,在与 beta 测试人员打交道/工作时,这并不总是可行的。

于 2012-11-26T15:48:09.043 回答