MagicalRecord v2.2和针对已发布应用的简单轻量级迁移

时间:2015-04-24 01:08:58

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

我在appstore中有一个应用程序,我使用 setupCoreDataStack 方法设置了我的魔法记录。从那时起,我就对数据模型进行了版本化,并为现有实体添加了一个属性。现在,当我使用 setupCoreDataStackWithAutoMigratingSqliteStoreNamed 对已发布的应用程序执行轻量级迁移时,调试应用程序将打开,没有数据。

当前使用xcode中的绿色标记选择新版本的数据模型,该版本基于旧数据模型。设置新属性的默认值。如果我再次安装发布版本而不从设备中删除调试应用程序,那么我看到旧数据,意味着旧数据永远不会被删除(这很好),它只是在设置新版本的模型并执行魔法记录后才显示轻量级迁移。我在这里缺少什么?

在现有发布版本上加载新调试版本时,调试器中没有错误。对数据模型版本的内容执行的filemerge diff仅显示添加新属性。

对这个问题或指针的任何见解都会有所帮助!

1 个答案:

答案 0 :(得分:0)

嗯,如果首先没有将数据存储设置为自动迁移存储,请在某处读取您无法自动迁移的信息。有人建议在多个版本上执行此操作。所以假设这是真的,我试过

[MagicalRecord setupAutoMigratingCoreDataStack];

之前

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@" XYZ"];

并且有效。

其他有相同问题的人,无需删除数据存储并使用setupAutoMigratingCoreDataStack创建新的或尝试手动迁移。只需设置为自动迁移存储,并在同一版本中一个接一个地进行自动迁移。希望它也适合你!