28

在EF項目中,是否有任何設置AutomaticMigrationsEnabled的最佳做法?AutomaticMigrationsEnabled是false還是true?

更多聲明:

在我們的團隊修改,我們通常運行模式後,「添加遷移」和「更新DATABSE」在包管理器控制檯命令。

每當這種情況發生的第一調整應該Check In整個項目等都有GET修改的「因爲它正在使用中,無法刪除數據庫」:當其他開發運行該項目,該錯誤引發對象。在很多情況下,我們不想檢查已經創建的模型和遷移!

這種情況是煩人的,是否有這樣那樣的問題的任何解決方案。 在此先感謝。

回答

41

自動遷移爲你做所有的魔法,但他們不允許嚴格的版本(你不必爲每個版本的特別固定的遷移)。如果沒有嚴格的版本控制,你不能跟蹤數據庫的版本,你不能做明確的升級(你根本不能降級)。

如果你不打算使用的版本,你需要知道數據庫是什麼版本,如果你不打算使用降級,你可以簡單地使用自動遷移。

它看起來像你的共享數據庫=顯示塞在工作「因爲它正在使用中,無法刪除數據庫」。每個開發者應該使用他自己的數據庫

但不想簽出已創建的模型和遷移!

這是一個最佳實踐,如果您想繼續使用基於代碼的遷移,您將不得不遵循它。順便說一句。有一種稱爲「持續集成」的做法 - 在持續集成中,在提交成功構建並通過測試後,您應該立即得到

+0

謝謝。是的,我們正在共享數據庫。你能告訴我們如何開始使用我們自己的數據庫(文本,文章,書籍......任何意見將不勝感激!) – 2012-08-06 04:13:08

+4

你在尋找什麼建議?只需在本地安裝數據庫服務器或在共享服務器上使用每個開發者的數在前一種情況下,您只需將連接字符串中的「數據源」更改爲本地計算機,並且每位開發人員都將擁有自己的具有相同名稱的數據庫。後面的情況需要每個開發人員的連接字符串,因此您必須確保某些簽入策略避免將開發人員特定的連接字符串存儲在源代碼管理中。 – 2012-08-06 07:21:18

+0

所以我們不需要任何共享數據庫,OK!我設置了**數據源=(本地)** – 2012-08-06 07:49:27

10

來源:http://msdn.microsoft.com/en-us/data/jj554735.aspx

建議的團隊環境

可以點綴自動和基於代碼的遷移,但是這是在 團隊開發的情況不建議使用。如果您是 使用源代碼管理的開發團隊的一員,則應使用 純自動遷移或純粹基於代碼的遷移。鑑於自動遷移的 限制,我們建議在團隊環境中使用基於代碼的 遷移。

相關問題