【问题标题】:How core data lightweight migration deals with different persistent stores?核心数据轻量级迁移如何处理不同的持久化存储?
【发布时间】:2014-04-28 23:41:11
【问题描述】:

假设我有 1 个模型的配置:A 和 B

目标 1 使用配置 A
目标2使用配置B

如果我更改配置 A 上的实体并运行目标 B,会发生什么情况?

迁移过程会查找整个模型还是仅检查正在运行的配置中的现有实体?

【问题讨论】:

    标签: xcode core-data migration


    【解决方案1】:

    配置很复杂。如果您尝试从一种配置切换到另一种配置,那么这将很困难,因为没有明确的迁移路径。

    如果您希望将配置 A 迁移到更直接的配置 A 的新版本。您需要单独迁移每个 NSPersistentStore。

    我通常将它们扔掉NSPersistentStoreCoordinator 并处理迁移。确保您指定配置,即使您在一次性使用它们时使用它们 NSPersistentStoreCoordinator 否则事情会变得混乱。

    一旦所有的商店都迁移了,我就站起来永久的NSPersistentStoreCoordinator。我从不在最终协调器中处理迁移。

    如果您尝试将两个配置合并回一个存储中,那么您将遇到问题并且可能需要进行手动迁移(导出/导入)。

    【讨论】:

    • 非常清楚!我只是想避免迁移,只更改当前目标未使用的模型部分。换句话说,我认为如果只修改部分模型就不会迁移,在这种情况下,当前目标未使用的配置。
    • 我现在感觉到的是,存储(对于任何配置)存储了它派生的模型的完整元数据集。
    • 是的,您可以跟踪哪些商店正在使用哪些配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多