Core Data轻量级迁移多数据模型版本的考虑

Consideration of multiple datamodel versions with Core Data light weight migration

我是核心数据迁移的新手。我阅读了有关轻量级迁移的教程。场景是这样的:

如果我的用户经常更新,那没关系。但是,如果我的用户拥有数据模型版本 1,并将应用程序直接更新到数据模型版本 3 怎么办?我是否需要编写代码来处理从 v1 到 v3 的迁移,还是因为我使用了轻量级迁移,它会自动为我处理?

根据我的经验,这会自动运行。它也很容易测试,所以我会推荐它。创建 v1,在设备上安装应用程序,向应用程序添加一些数据。在同一台设备上创建 v2、v3,然后 运行 应用程序。有用吗?

此外,您在编写新的应用程序代码时需要小心,不要假设新字段中包含升级时数据库中任何现有记录的有效数据。

您的应用需要能够处理所有可能发生的迁移。如果当前版本是第三,肯定可以将之前的所有版本升级到第三版本。

这并不意味着您实际上必须为迁移编写代码。如果自动轻量级迁移是可能的,那么它就可以工作,而无需任何自定义迁移代码。这是否有效取决于模型如何改变。如果可以使用自动轻量级迁移进行 v1 --> v3 迁移,则可以使用它。如果自动轻量级迁移不行,你需要自己处理。答案取决于版本 1 与版本 3 的相似程度,与还有版本 2 的事实无关。