App Store中已发布应用的神奇记录,核心数据迁移

use*_*914 9 iphone core-data ios magicalrecord

我们的应用程序已在应用商店发布,现在我想在下一版本上工作.在这里,我可以将属性和实体添加到当前模型.

我正在使用具有魔法记录的核心数据.

我需要有关核心数据迁移的帮助,并提供神奇的记录.

我已经在使用[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"xxxxxxx"]; 在app委托.

根据我的理解,如果我们使用上述方法,MR将负责迁移.

我是否需要在Model.xcdatamodeld中进行任何更改, 例如添加模型版本(Editor- > Add model Version).

请帮我看看如何迁移核心数据.

cas*_*ora 10

当您的应用程序包中有多个版本的数据模型时,该方法只会启用自动迁移.要添加新版本的数据模型,您需要在Xcode中选择数据模型,然后在菜单中选择编辑器 - >添加模型版本......从那里,Xcode将为您进行正确的设置.这也是一个相当简单的想法,它创建了一个新的数据模型文件,它以当前数据模型文件的内容开始.从那里,您可以根据需要更改和编辑数据模型.请注意,只有简单的更改才是"自动的".如果新属性具有默认值,则添加新属性是有效的.添加新实体也属于自动类别.我建议从Apple官方文档中阅读有关Core Data Migrations的更多详细信息


7wo*_*ers 10

建立在@casademora回答的基础上,谁比我更了解MR,这里有什么东西适合我.关键是按照建议阅读Apple文档.

  1. 突出显示您现有的.xcdatamodel,然后单击编辑器>添加模型版本>使用之前的增量命名它(即如果"myapp"使用xcode中建议的"myapp 2".

  2. 在新创建的.xcdatamodel上进行更改.

  3. 突出显示父.xcdatamodel,然后在xcode右侧的File Inspector上选择您的新版本作为当前的Model Version.

  4. 注意:仅在执行轻量级迁移时才需要执行此步骤.选择文件>新建>文件>核心数据>映射模型.选择原始作为源,新作为目标,然后保存在与.xcdatamodel相同的文件夹中.

  5. 确保你正在使用setupAutoMigratingCoreDataStack或setupCoreDataStackWithAutoMigratingSqliteStoreNamed当然

  6. 通过从应用程序商店下载应用程序并打开它进行测试,然后关闭并在顶部运行调试.您不应该获得任何"删除不兼容的模型版本"消息(即所有持久性数据应该仍然存在)或任何其他错误.