我們正在考慮使用EF 4.3.1基於代碼的遷移,但不清楚如何將遷移與我們目前的開發/部署方法集成在一起...EF遷移 - 如何在開發和部署期間進行管理?
問題應用程序是桌面WPF應用程序,每個桌面都有自己的SQL Server實例(每個實例都有4個獨立的數據庫)。它被部署到「本地」環境中,並且沒有本地IT支持。任何數據庫遷移都必須使用安裝程序(可能是InstallShield)執行的SQL腳本完成。在現場位置部署/升級數據庫時,不會有任何人可以在PMC提示符下運行命令來升級數據庫。因此EF Migrations的最終「輸出」必須是一組SQL腳本,安裝程序將選擇性地應用這些腳本。
此外,我們有多個開發人員正在併發更改數據庫..沒有DBA。每個開發人員只需簡單地檢查他們對TFS的代碼(模型)更改,並在下一次獲取最新時間時,對模型的更改會自動在其開發系統上創建新數據庫。那麼我們現在應該如何讓每個開發人員執行他們自己的本地遷移(而不是刪除/重新創建其本地數據庫),然後管理/合併/合併這些遷移?那碰撞怎麼辦?
在開發和單元測試期間,每個開發人員可能會在單次簽出/簽入迭代期間多次刪除其(整個)本地數據庫。這對Code First非常有用,因爲數據庫在應用程序重新啓動時會自動重建。但這意味着數據庫中的_MigrationHistory表也被刪除。我們如何處理這個問題?我們不需要每個開發系統的遷移歷史嗎?如果不是,那麼我們在何處/如何檢測需要應用於交付系統的總體更改?
我可以看到使用遷移來處理遷移數據庫的機制的價值,但不清楚的是如何利用它而不會將集中式數據庫「變更控制」瓶頸引入開發週期,並且從而失去了Code First的主要優勢之一。
任何有識之士/建議將不勝感激!
DadCat