我們有許多移動服務,一對一開發,一個用於生產。這些移動服務使用SQL Azure數據庫作爲存儲庫。發佈後數據庫未更新
總結:
生產服務---->在生產服務器上的生產數據庫
開發,服務---->在開發的服務器上開發,數據庫。
其實我們可以在開發服務上發佈。我們有一個藍色的笑臉(幾秒鐘後出現),並對數據庫(添加列)進行修改。
但是,當我們發佈prod服務。我們也有一個藍色的笑臉(立即出現),但數據庫修改(添加列)沒有出現!
經過調查後,自上次成功發佈以來,兩個環境之間唯一的變化就是prod服務器上的審計激活。由於此審覈已被禁用。
更深刻的是,當我們讀取遷移歷史記錄表時,我們可以看到一行代表開發者,但沒有看到產品。
在開發數據庫:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [dev-server-name].[dev-database-name].[__MigrationHistory]
結果=> 201509240834243_AutomaticMigration最後遷移:今天
在PROD數據庫:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [prod-server-name].[prod-database-name].[__MigrationHistory]
結果=> 201506291336002_AutomaticMigration最後遷移:2015年/ 06/29
有關信息,我們我們所有的生產服務都有這個問題。相反,我們的開發服務完美運作。
我們所有生產服務之間唯一的共同點是託管數據庫的服務器。但是每個服務都有自己的數據庫。
總之,我們不能再對生產中的數據庫發佈任何更改。
非常感謝您的幫助。
請遵循以下指南:http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity- framework-in-an-asp-net-mvc-application。特別是關於「執行代碼優先遷移」的部分。 –