MagicalRecord v2.2 和已发布应用的简单轻量级迁移
Posted
技术标签:
【中文标题】MagicalRecord v2.2 和已发布应用的简单轻量级迁移【英文标题】:MagicalRecord v2.2 and simple lightweight migration for released app 【发布时间】:2015-04-24 01:08:58 【问题描述】:我在 appstore 中有一个应用程序,我在其中使用 setupCoreDataStack 方法设置了我的魔法记录。从那以后,我对数据模型进行了版本化,并向现有实体添加了一个属性。现在,当我使用 setupCoreDataStackWithAutoMigratingSqliteStoreNamed 对已发布的应用执行轻量级迁移时,调试应用打开时没有数据。
新版本的数据模型目前在 xcode 中用绿色勾号选中,并且基于旧的数据模型。新属性的默认值已设置。如果我再次安装发布的版本而不从设备中删除调试应用程序,那么我会看到旧数据,这意味着旧数据永远不会被擦除(这很好),只是在设置新版本的模型并执行 magicrecord 后没有显示轻量级迁移。我在这里错过了什么?
在现有发布版本上加载新的调试版本时,调试器中没有错误。对数据模型版本的内容执行的 filemerge diff 只显示了新属性的添加。
对此问题的任何见解或指示都会有所帮助!
【问题讨论】:
【参考方案1】:嗯,如果数据存储最初未设置为自动迁移存储,则在无法自动迁移的地方阅读。有人建议在多个版本中进行。所以假设这是真的,我尝试了
[MagicalRecord setupAutoMigratingCoreDataStack];
就在之前
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"XYZ"];
它成功了。
其他有同样问题的人,无需删除数据存储并使用 setupAutoMigratingCoreDataStack 创建新数据或尝试手动迁移。只需设置为自动迁移商店并在同一构建中一个接一个地进行自动迁移。希望它也适用于你!
【讨论】:
以上是关于MagicalRecord v2.2 和已发布应用的简单轻量级迁移的主要内容,如果未能解决你的问题,请参考以下文章
MagicalRecord 重新启动应用程序时删除核心数据存储
MagicalRecord 示例应用程序无法在 Xcode 7 中编译
MagicalRecord 保存在应用程序第一次退出并重新运行之前不会持续存在
每次应用加载时,MagicalRecord 都会删除所有创建的对象