具有多个版本的核心数据迁移(轻量级)



我使用abc . xcdatmodel开发了Core Data store。分发应用程序版本1.

需要对属性名做一些简单的更改,所以我创建了一个新版本ABC 2. vcdatmodel。分发应用程序版本2。这很有效。迁移是完美的

然后,我需要做一些更简单的更改(添加一个属性),所以我基于ABC 2创建了另一个新版本;3. xcdatamodel ABC。从版本2更新时,自动迁移失败。

然而,如果我尝试从版本1版本升级(使用abc . xcdatmodel),一切都像魅力一样工作。

我错过了什么明显的吗?想法吗?

一个想法-您可能无意中修改了版本2数据模型,使其不再与修改前创建的版本2存储匹配。现在,当一个具有"真正的"版本2存储的实例加载时,找不到匹配的数据模型,因此它无法从2转换为3。在开发版本3之前,是否将版本2的模型检入到git/svn中?它显示为修改过的吗?

注意,"修改"并不一定意味着添加任何属性-只是任何会改变Core Data用于定义版本的哈希值的小事情。

最新更新