0

我注意到一个想法是,在发布更新时,我可能必须保持整个模型版本堆栈完好无损。我不确定如果有人拥有包含填充数据的 1.0 版,然后立即更新到 5.0 版而没有任何中间版本会发生什么。因此,迁移还必须知道第一个数据模型是什么样的。或者,这甚至根本不起作用。不知道。

但是,经过一些更改后,我有 25 个数据模型,其中最后一个是当前版本。所以我的猜测是,持久存储协调器将有大量工作迭代这些版本并逐步找出差异。这不烂吗?有解决方法吗?

4

1 回答 1

2

如果用户从版本 1 升级到版本 5,Core Data 将一次性尝试。

Core Data 没有“版本 1”和“版本 5”的概念,它只了解源模型和目标模型。当用户加载您的“版本 1”时,Core Data 会在您的包中找到源模型。Core Data 还将根据“当前”模型确定目的地。从那里它尝试迁移。

因此,当您创建新版本时,您必须测试每个可能的迁移以确保它们正常工作。如果它们不能自动使用,则为迁移放入映射模型。

所以没有性能问题,因为 Core Data 只会执行一次迁移。

于 2010-06-14T16:43:31.140 回答