2013-04-27 30 views
3

我正在更新使用Core Data進行數據管理的其中一個應用程序。在這個當前版本中,我實現了Magic Record並且更新了數據模型。數據模型將無法使用自動遷移,因此我需要實施手動遷移。我對Magic Record如何做到這一點感到困惑。在魔法記錄中使用自定義策略遷移

我查看了Magic Record的源代碼,並且從它的外觀來看,在嘗試創建持久性存儲協調器時沒有支持遷移管理器的實現。

DEBUG標誌設置爲true時,應用程序將刪除不兼容的版本並使用當前版本創建新的數據庫。但是,這不會遷移所有數據。從文檔看來,它看起來像是實現了這個功能,所以我們不必通過刪除應用程序並重新安裝來不斷刪除舊版本,這樣纔有意義。

Magic Record是否支持遷移管理器?我曾考慮將其添加到源代碼中,但我不想修改該庫。

回答

2

asked MagicalRecord的作者,得到了如下回答:

我只是說這experimental分支。看一看在 MagicalRecord類方法

+setupCoreDataStackWIthManuallyMigratingStoreNamed:

讓我知道它是如何工作的你。另外在實驗分支中還有一些需要將(雙關語)遷移回主分支的其他功能,所以如果您還發現其他任何內容,請讓我知道 。

+1

看起來這種方法在過去的3年中沒有成爲完整版本。還有其他官方選擇嗎? – 2016-07-29 16:47:48

1

你不需要修改MagicalRecord。只需在設置MagicalRecord堆棧之前觸發您的遷移管理器。

  • 在應用程序啓動時檢測是否需要遷移。
  • 如果需要遷移,請運行遷移管理器。一個很好的例子是在SO 5995231
  • 當完成或不需要遷移時,啓動MagicalRecord堆棧。
+1

如果您可以爲此提供代碼,那將會很棒。 – Shmidt 2013-05-08 08:47:08