【问题标题】:Magical record , core data migration for released app in Appstore神奇的记录,Appstore中已发布应用的核心数据迁移
【发布时间】:2014-05-14 21:59:37
【问题描述】:

我们的应用已在应用商店发布,现在我想开发下一个版本。在这里,我可能会在当前模型中添加属性和实体。

我正在使用带有 Magical record 的核心数据。

我需要有关神奇记录的核心数据迁移方面的帮助。

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

据我了解,如果我们使用上述方法,MR 将负责迁移。

我是否需要在 Model.xcdatamodeld 中进行任何更改,例如添加模型版本(编辑器->添加模型版本)。

请帮助我如何迁移核心数据。

【问题讨论】:

    标签: ios iphone core-data magicalrecord


    【解决方案1】:

    要建立在@casademora 答案的基础上,他显然比我更了解 MR,这就是为我工作的东西。关键是按照建议阅读 Apple 文档。

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

      李>
    2. 对新创建的 .xcdatamodel 进行更改。

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

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

    5. 确保您使用的是 setupAutoMigratingCoreDataStack 或 setupCoreDataStackWithAutoMigratingSqliteStoreNamed 当然

    6. 通过从应用商店下载应用并打开它进行测试,然后关闭并在顶部运行调试。您不应收到任何“已删除不兼容的模型版本”消息(即所有持久数据仍应保留)或任何其他错误。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 2011-09-14
        • 2012-04-11
        • 1970-01-01
        相关资源
        最近更新 更多