2014-05-16 36 views
0

我們正在開發一個計劃在Azure上託管的新站點。我們之前沒有做過這件事,所以它提出了一些有趣的挑戰。Code First遷移,數據庫項目和SQL Azure

首先,我們首先使用代碼並使用遷移來更新數據庫。我們在解決如何將數據庫部署到Azure時遇到了一些問題,所以我們最終創建了一個數據庫項目。

在部署中存在一堆Azure特定問題,如果您未糾正Azure不允許使用的所有有效SQL,則會出現錯誤。 在我看來,你應該能夠在Azure網站上先做代碼,就像我們在本地網站上做的那樣,並且我發現This article似乎解決了這個問題。

但我想知道的是最佳實踐。

  1. 我會假設我們並不需要數據庫的項目了,但我不 肯定。使用Visual Studio 2013和代碼優先處理數據庫 的最佳做法是什麼?

  2. 上述文章中的方法看起來罰款的系統在 試生產,但一旦系統在生產和生活具有數據 ,這是一個推薦的做法? 你如何保護自己免受錯誤的影響,比如有人不小心改變了一個告訴Visual Studio重新創建數據庫的 設置?

任何想法或想法,將不勝感激。

回答

0

首先,我想從我的理解中說明,使用Entity Framework時,如果您已啓用遷移,它僅用於開發,建議您在部署代碼時將其設置爲false。

至於部署到Microsoft Azure,我只使用Visual Studio Team Services完成此操作。關於Code-First的事情是您沒有Sql Queries,並且數據庫不會立即部署。所以這是我在過去所做的那樣,

  1. 在SQL Management Studio中創建一個空白的SQL查詢

  2. 在Visual Studio服務器資源管理器擴展您的數據庫中 項目表級

  3. 右鍵單擊每個表格並選擇「顯示錶格定義」我希望 我們可以在數據庫級別執行此操作。

  4. 將Studio中的T-SQL複製到空白的Sql文件中 Studio。請注意,所有表查詢都可以放在一個 文件中,只需遵循T-SQL規則。使用SQL Management Studio連接到Azure 數據庫實例。

  5. 對Azure上的數據庫運行SQL查詢。請注意,此時您在開發中使用的 示例數據將不會在您的Azure 數據庫中,您將不得不創建插入T-SQL,並針對Azure數據庫運行它。

還要確保您的應用在部署到Microsoft Azure時具有正確的連接字符串,並且它應該連接到您的數據庫就好了。

+0

儘管您不應該直接將遷移部署到生產環境,但是說遷移僅用於開發是錯誤的。您仍然可以利用EF遷移,但使用'-Script'選項生成更改腳本,以便在生產中運行它們之前查看更改,或將腳本交給DBA查看。 – AaronLS