我爲我的iPhone應用程序使用核心數據和輕量級遷移。Core Data輕量級遷移有多少個遷移步驟?
假設我爲應用程序創建了3個數據模型版本。一位用戶安裝了我的應用的早期版本,其數據模型版本仍然是v1。當用戶將應用程序更新爲具有數據模型版本v1,v2和v3的最新版本時,更新過程中發生了什麼?
sqlite數據庫首先從v1遷移到v2,然後從v2遷移到v3?或者它只是從v1跳到v3?
我爲我的iPhone應用程序使用核心數據和輕量級遷移。Core Data輕量級遷移有多少個遷移步驟?
假設我爲應用程序創建了3個數據模型版本。一位用戶安裝了我的應用的早期版本,其數據模型版本仍然是v1。當用戶將應用程序更新爲具有數據模型版本v1,v2和v3的最新版本時,更新過程中發生了什麼?
sqlite數據庫首先從v1遷移到v2,然後從v2遷移到v3?或者它只是從v1跳到v3?
在內部,我相信Core Data輕量級遷移將按順序將更改應用於每個後續版本,但出於您的目的,您可以將其視爲直接發生到最終版本的遷移。據我所知,在輕量級遷移期間,沒有「鉤子」可以攔截和運行版本之間的代碼。
如果您需要更改數據或添加新數據,則應該動態確定型號版本並作出相應的反應。
核心數據不關心版本的順序,它不關心任何中間版本。它只知道源版本和目標版本,它將直接在這些版本之間遷移。
通常輕量級遷移這將工作得很好。
我也相信一般過程應該是版本遷移的版本,或者至少在決定最終模式時會引用每個歷史模型模式。但是實現細節很重要。 –