2017-06-21 135 views
0

我們有一個運行實體框架6.1的項目,我們剛開始使用顯式遷移(過去我們會使用自動遷移),我們遇到了以下情況。實體框架顯式遷移

  1. 我創建了一個顯式遷移來在字段上創建一些索引。我在一個單獨的分支做這個。
  2. 我的一位同事也開始明確的遷移,在他自己的分支做一些其他的工作。

每個分支都經過代碼審查,並在批准時合併到主分支中。 但現在我們注意到,我的顯式遷移來創建索引,是在不同版本的模型上創建的。由於這是一個包含多個開發人員的項目,因此該模型一直在變化。因此,如果我們檢查將生成哪些SQL代碼來更新數據庫,我們看到當我在分支上工作時添加的新列/表格/ ...被刪除,然後我的索引被創建之後再次添加這些列。

我們該如何避免這種情況?我們在工作流程中做了什麼錯誤?

回答

1

隨着EF 6的每次遷移都有關於數據庫最後狀態的元數據。
在EFCore中,使用具有數據庫快照的單獨文件可以更好地完成這項工作。
下面是遷移在團隊環境中一些好的做法:
https://msdn.microsoft.com/en-us/library/dn481501(v=vs.113).aspx
How to manage Migrations in a project with multiple branches?

現在你的情況是非常具體的,我不相信任何這些程序有其自動化解決方案。
我能想到的一種方法是讓DB模型不在本地,而是在服務器上,並且每個開發人員都在創建遷移時指定目標。
但是在之前的博客中,共享數據庫並不被認爲是最佳實踐。 你需要弄清楚一些混合程序來遵守每一條建議。 祝你好運...

+0

謝謝,我認爲你的鏈接幫助我了! –