2

我們從手動編碼數據庫遷移切換到代碼優先的實體框架遷移。在我們以前的設置中,我們能夠檢查數據庫是否太新。這很重要,因爲它可能不兼容。不幸的是,我找不到一種很好的方法來檢查當前數據庫的最新狀態或者是否太舊。檢測實體框架模型對於使用遷移歷史記錄的數據庫是否過舊

用例是客戶在他的電腦上有2個版本的軟件。客戶端首先啓動包含比舊版本更新的遷移的最新版本。之後,客戶端啓動舊版本的軟件。目前該軟件會因爲模型不兼容而崩潰並燒燬。

回答

3

您可以使用

DbMigrator.GetPendingMigrations 

檢查數據庫處於同步

您可以使用

DbMigrator.GetDatabaseMigrations 

檢查什麼的遷移已經應用到目標數據庫。

然後運行掛起的遷移要求:

var configuration = new Configuration(); 
var migrator = new DbMigrator(configuration); 
migrator.Update(); 

http://romiller.com/2012/02/09/running-scripting-migrations-from-code/

+0

這不會讓我檢查數據庫是否遷移領先的軟件雖然還是不是嗎? – Wouter 2014-10-10 11:18:46

+0

已更新我的回覆 – ErikEJ 2014-10-10 11:26:10

+0

我現在正在比較數據庫遷移和模型遷移的數量,以查看哪個更新。我想在未來合併移民將是一種罪過,因爲這會欺騙簡單的檢查。 – Wouter 2014-10-10 11:29:33

相關問題