【问题标题】:core data migration核心数据迁移
【发布时间】:2011-09-14 21:14:12
【问题描述】:

我在核心数据迁移方面遇到了一些问题。我有 3 个版本的应用程序 1.0、1.1、1.2。

对于第一个两个版本(1.0 和 1.1),我拥有相同的数据模型,但对于第三个版本(1.2),我对我的数据模型进行了一些更改。现在我在我的应用程序的 1.2 版中遇到了不兼容的问题(尽管它的重量有所改变)。

我认为我错过了我的应用程序版本 1.1 的数据模型版本,因为 1.0 和 1.1 的数据模型没有变化,我还没有创建另一个数据模型版本。

我们是否需要为新的应用版本创建数据模型版本,即使版本之间的数据模型没有变化。

对不起,如果我的查询太愚蠢...请提出建议..

【问题讨论】:

    标签: core-data


    【解决方案1】:

    如果您想更改模型但同时保留打开使用先前版本模型创建的商店的能力,则必须保留先前版本的模型(作为版本化模型中的版本)。 Core Data 无法打开没有兼容模型的商店。因此,如果你想改变 该模式还要保留开设现有商店的能力,您必须:

    1. 确保您有版本化模型 - 如果没有,请将当前模型变成版本化模型。
    2. 在编辑架构之前,创建当前模型的新版本。
    3. 编辑模型的新当前版本,保持旧版本不变。

    请参考 link 版本控制的分步过程

    【讨论】:

      【解决方案2】:

      不,您不需要为每个应用版本都有一个数据模型版本。

      确定一下:当您从 1.1 升级到 1.2 时,您是否创建了新的数据模型版本?还是您只是简单地修改了现有的数据模型?因为要使(轻量级)迁移工作,您应该拥有不同版本的数据模型;您不应该只修改现有模型。

      另外,您确实编写了执行自动轻量级迁移的代码,对吧?

      【讨论】:

      • 是的,我已经为自动轻量级迁移调用执行了代码。我为 1.2 版创建了新的数据模型,没有编辑过之前的数据模型。谢谢回复
      • +1。发现。这是文档链接,所有关于核心数据版本控制的内容。把这一切都说清楚了。 developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/…
      • @dev4u 你能添加代码来执行迁移到你的问题吗?发布您收到的确切错误消息也可能会有所帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多