我为我的iPhone应用程序使用Core Data和轻量级迁移。
假设我为应用创建了3个版本的数据模型。一位用户安装了我的应用程序的早期版本,其数据模型版本仍为v1。当用户将应用程序更新到具有数据模型版本v1,v2和v3的最新版本时,更新期间发生了什么?
sqlite数据库首先从v1迁移到v2,然后从v2迁移到v3?或者它只是从v1跳到v3?
答案 0 :(得分:2)
在内部,我相信Core Data轻量级迁移会按顺序将更改应用于每个后续版本,但出于您的目的,您可以将其视为直接发生在最终版本上的迁移。据我所知,在轻量级迁移期间,没有“钩子”来拦截和运行版本之间的代码。
如果您需要更改数据或添加新数据,您应该动态确定模型版本并做出相应的反应。
答案 1 :(得分:1)
核心数据并不关心版本的顺序,也不关心任何中间版本。它只知道源版本和目标版本,它将直接在这些版本之间迁移。
通常使用轻量级迁移,这样可以正常工作。