2014-10-08 76 views
2

我們是一個由兩位開發人員組成的團隊,他們在Azure中構建了一個ASP.Net MVC應用程序,並且想知道設置數據庫的最佳方式是什麼。Azure ASP.Net MVC數據庫部署最佳實踐

我們一直在附加到SQL Express的App_Data文件夾中使用本地數據庫,這似乎工作正常,直到需要檢入併發生衝突。

我們正在使用git檢查BitBucket,並且部署也從主分支運行到部署數據庫的Azure中。

我們正在使用數據庫代碼第一次遷移,並且所有數據都被播種。

任何人都可以幫忙嗎?

+1

如果發生衝突的,因爲EF模式的轉變,確保您添加手動EF遷移。 – lopezbertoni 2014-10-08 12:50:29

+0

@lopezbertoni感謝您的快速響應,我們的解決方案設置聽起來像最佳做法嗎? 也應該將mdf/ldf簽入源代碼管理? – Burt 2014-10-08 12:54:07

+1

我也在一個由2名開發人員組成的團隊工作。對我們來說很有用處於開發的早期階段(模型變化很大),每個人都在本地運行自己的數據庫(數據在初始化器中播種)。一旦項目相對穩定,我們就會部署到一個擁有SQL Azure數據庫的網站。每當模型發生變化時,我們都會添加一個遷移並針對該數據庫運行它。我們的團隊和你一樣小,所以這對我們很有用。如果團隊成長,我建議設立一個CI服務器(團隊城市)。希望這可以幫助。 – lopezbertoni 2014-10-08 13:00:13

回答

1

將討論移至答案。

關於遷移:

我在一隊的2個開發工作了。對我們來說很有用處於開發的早期階段(模型變化很大),每個人都在本地運行自己的數據庫(數據在初始化器中播種)。一旦項目相對穩定,我們就會部署到一個擁有SQL Azure數據庫的網站。每當模型發生變化時,我們都會添加一個遷移並針對該數據庫運行它。我們的團隊和你一樣小,所以這對我們很有用。如果團隊成長,我建議設立一個CI服務器(團隊城市)。

關於數據庫連接

我們不使用的.mdf文件中的App_Data。每個人都有一臺運行在他們機器上的SQL Server Express本地實例。對於連接字符串,我們設置了4個環境(本地,開發,分段,生產)。這些都在web.config中設置(你可以在代碼中設置它,這是你的選擇)。當我們運行應用程序時,我們選擇了我們想要開發的環境。我們使用VS2013部署到Azure網站,每個web.config都根據環境進行相應配置。

我們從web.config獲取環境,並根據我們所處的環境,使用IOC容器(Ninject)將連接字符串注入到應用程序中。

<configuration> 
    <appSettings> 
     <add key="environment" value="Development"/> 
    </appSettings> 
</configuration> 

希望這有助於