2012-10-11 220 views
0
  1. 存儲關於當前數據庫狀態的信息(應用了什麼遷移)?我想它可以是「dbo .__ MigrationHistory」表或該表僅用於記錄目的?實體框架5代碼遷移

  2. 如果我啓用了遷移,添加了遷移並更新了我的數據庫。之後,我將代碼簽入SVN,另一位開發人員將其簽出。這是另一位開發人員爲創建/更新自己的數據庫所做的事情嗎?

我看到這樣的選項:

1)調用Update-Database命令的時候了。

2)做一切從開始(啓用遷移,添加遷移,更新數據庫)。

3)除了跳過添加 - 遷移步驟(它已經存在,每個新開發者再次添加它似乎很奇怪)。

我的哪個假設是正確的,或者如果沒有人是正確的方式?

回答

1
  1. 要檢索哪些遷移已應用到數據庫中,你可以使用Get-Migrations命令(reference)。

  2. 一切都取決於如何創建數據庫,您使用的初始化程序。 This article is worth reading if you are unfamiliar with those.

    • 當使用DropCreateDatabaseAlways初始化,你並不真正需要關心更新數據庫,因爲您的數據庫將被刪除&在每個應用程序啓動時重新創建。

    • 當使用DropCreateDatabaseWhenModelChanges initiliazer時,如果EF在應用程序啓動時檢測到模型已更改,您的數據庫將被刪除然後重新創建。

    • 使用CreateDatabaseIfNotExists初始化程序時,或者如果沒有定義初始化程序,如果數據庫尚不存在,將創建它。如果數據庫已經存在&您添加了遷移,您(以及每位開發人員檢索您的代碼)需要使用Update-Database命令來更新數據庫。

    • 在Code-First Migrations中引入了一個新的初始化程序:MigrateDatabaseToLatestVersion,此初始化程序自動將數據庫更新到最新定義的Migration。 見本頁的最後一節:http://msdn.microsoft.com/en-us/data/jj591621