是否可以使用MagicalRecord执行多个轻量级CoreData迁移?

时间:2013-07-08 12:53:41

标签: core-data core-data-migration magicalrecord

我有四个版本的CoreData模型。我刚刚在一个实体中添加了一个小变化,一个新的可选属性。在版本2和版本3之间,我犯了一个错误并对现有模型进行了更改,而不是创建新版本。我恢复了版本2,添加了版本3并强制删除了商店,因此更新应用程序的用户正在重新生成商店而不执行迁移。

这很好用,但现在我正在尝试使用CoreData plus MagicalRecord执行轻量级迁移,从我的商店的第3版到第4版,我总是遇到Can't find or automatically infer mapping model for migration错误。我不想再次强制删除,但我仍然坚持我还能做些什么来解决轻量级迁移问题。我开始怀疑问题仍然存在于版本2和版本3之间,但我无法确认。

我用来设置商店的代码非常简单:

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"Store.sqlite"];

1 个答案:

答案 0 :(得分:1)

此错误消息通常表示您已删除或未包含应用程序包中的源或目标模型,因此核心数据无法为您构建映射模型。查看实体受影响的方法是将模型哈希打印到控制台并进行比较以查看哪些实体已更改。从那里,您可以确定如何构建映射模型。还要记住,迁移不是顺序的。您有4个版本的模型,这意味着您现在拥有4 x 3 x 2迁移组合。核心数据只会从源存储的版本和最新版本中执行一次。因此,您还需要测试从v1到v4,v2到v4等的迁移,以涵盖所有基础。