我在appstore中有一个应用程序,我使用 setupCoreDataStack 方法设置了我的魔法记录。从那时起,我就对数据模型进行了版本化,并为现有实体添加了一个属性。现在,当我使用 setupCoreDataStackWithAutoMigratingSqliteStoreNamed 对已发布的应用程序执行轻量级迁移时,调试应用程序将打开,没有数据。
当前使用xcode中的绿色标记选择新版本的数据模型,该版本基于旧数据模型。设置新属性的默认值。如果我再次安装发布版本而不从设备中删除调试应用程序,那么我看到旧数据,意味着旧数据永远不会被删除(这很好),它只是在设置新版本的模型并执行魔法记录后才显示轻量级迁移。我在这里缺少什么?
在现有发布版本上加载新调试版本时,调试器中没有错误。对数据模型版本的内容执行的filemerge diff仅显示添加新属性。
对这个问题或指针的任何见解都会有所帮助!
答案 0 :(得分:0)
嗯,如果首先没有将数据存储设置为自动迁移存储,请在某处读取您无法自动迁移的信息。有人建议在多个版本上执行此操作。所以假设这是真的,我试过
[MagicalRecord setupAutoMigratingCoreDataStack];
之前
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@" XYZ"];
并且有效。
其他有相同问题的人,无需删除数据存储并使用setupAutoMigratingCoreDataStack创建新的或尝试手动迁移。只需设置为自动迁移存储,并在同一版本中一个接一个地进行自动迁移。希望它也适合你!