文章來源:developer.apple.com html
要想遷移數據,你既須要原始版本,又須要當前版本。所以,須要建立 帶版本的模型(versioned model),帶版本的模型(像版本倉庫)能夠存儲下多個版本。若是沒有問題的話,Core Data 可使用當前新版本打開之前版本建立的數據存儲,並將其遷移至當前版本規範中。所以,爲了幫助 Core Data 遷移,須要咱們提供新舊版本間的映射信息(map),映射信息有兩種方式,一是簡單根據版本號,二是建立獨立的映射模型文件(separate mapping model file)。 程序員
一般程序版本改變,會涉及到不少方面,Core Data 沒有能力爲咱們自動處理,但提供了一些技術爲咱們所用: app
模型版本管理,方便區分不一樣階段的不一樣版本。 大數據
模型版本,有兩個視角,以程序員看,就是版本號(文字自己);從 Core Data角度看,就是另外一回事,具體看 「Understanding Versions.」 ui
帶版本的對象模型文件格式和如何添加版本號,參見 「Model File Format and Versions.」 spa
映射方式選擇(表和字段/實體和屬性) orm
簡單狀況下,Core Data 能夠推測出(infer)如何映射,具體見「輕量級數據遷移」 「Lightweight Migration.」 htm
若是複雜了,Core Data 沒法推測,咱們必須建立映射模型(mapping model),經過映射模型,表述如何轉換(從舊版本到新版本),建立方法見 「Mapping Overview.」 對象
數據遷移的過程參見 「The Migration Process.」,如何執行具體的遷移參見 「Initiating the Migration Process.」 開發
能夠定製遷移過程,如決定是否有必要進行遷移(if-else)、如何找到正確的源模型和目標模型(correct source and destination models)及正確的映射模型。
若是你要本身初始化遷移過程,那你只能自定遷移過程,好比,在主文件夾(main bundle)以外的位置搜索,或者,利用多個映射模型執行幾個階段的遷移,也可能在大數據集基礎上處理。自定遷移過程參見 「Customizing the Migration Process.」
使用了 iCloud 的App,只能執行輕量級遷移,具體參 「Migration and iCloud.」
儘管能夠輕鬆完成,但還需謹慎,避免衝突。