2016-01-22 57 views
0

我無法理解Alloy Migrations,具體來說,合金遷移的生命週期

1)什麼時候遷移運行?在應用程序升級或每次應用程序啓動時?

2)何時執行migration.down()?我會假設Alloy從任何已安裝的應用程序版本都將按時間順序執行(最新版本)。 down()的作用是什麼?

回答

0

每當應用程序重新打開(所以不是在恢復)它會檢查尚未運行的遷移(這是在sqlite表中跟蹤)。

migration.down()將在用戶以某種方式升級到舊版本時運行。這在App Store部署中不會發生,但可能在測試和adhoc/enterprise部署期間發生。

+0

我檢查了SQL Sync Adapter的代碼,看起來像migrator會在'afterModelCreate'事件上創建每個模型後觸發 - 而不是重新打開應用程序。我誤解了什麼嗎? –

+1

它在那裏被調用,因爲您可能創建並保存模型而不使用集合。因此,每次創建模型時,我們都會檢查是否有遷移要做,但只會發生一次。 –