Core Data轻量级迁移有多少个迁移步骤?
Posted
技术标签:
【中文标题】Core Data轻量级迁移有多少个迁移步骤?【英文标题】:How many migration steps does Core Data lightweight migration have? 【发布时间】:2013-10-25 14:21:12 【问题描述】:我为我的 iPhone 应用程序使用 Core Data 和轻量级迁移。
假设我为应用创建了 3 个版本的数据模型。一位用户安装了我的应用程序的早期版本,其数据模型版本仍然是 v1。当用户将应用更新到最新版本时,数据模型版本为 v1、v2 和 v3,更新过程中发生了什么?
sqlite数据库先从v1迁移到v2再从v2迁移到v3?还是直接从 v1 跳到 v3?
【问题讨论】:
【参考方案1】:在内部,我相信 Core Data 轻量级迁移会按顺序将更改应用到每个后续版本,但出于您的目的,您可以将其视为直接发生到最终版本的迁移。据我所知,在轻量级迁移期间,没有“钩子”来拦截和运行版本之间的代码。
如果您需要更改数据或添加新数据,则应动态确定模型版本并做出相应反应。
【讨论】:
我也相信一般过程应该是一个版本一个版本的迁移,或者至少在决定最终模式时,每个历史模型模式都会被引用。但实现细节很重要。 虽然不是这样,请看我的回答。【参考方案2】:Core Data 不关心版本的顺序,也不关心任何中间版本。它只知道源版本和目标版本,它会直接在它们之间迁移。
不过,通常对于轻量级迁移,这将可以正常工作。
【讨论】:
以上是关于Core Data轻量级迁移有多少个迁移步骤?的主要内容,如果未能解决你的问题,请参考以下文章