1

我已經使用Asp.Net MVC和Entity Framework 6創建了一個基於web的應用程序。目前,該應用程序已安裝在生產服務器我的客戶端上。幾個星期前,我的客戶需要額外的應用程序模塊,這些模塊已經在運行。當然,就編程代碼而言,新表格還有幾個額外的模型和屬性。 我的問題是:如何在服務器生產中更新遷移數據庫實體框架

  1. 如何更新在生產服務器,Visual Studio中的我沒有在生產服務器上直接訪問現有數據庫的數據庫架構。這是我的情況的本質..

  2. 對我的情況有沒有一種方法或一個好的舉措。請他的解釋和他的指導。

的附加信息:

  1. 我的客戶端應用程序安裝到生產服務器的過程中應用相當嚴格的安全性。她的意圖是,進入應用程序服務器生產的過程不是由我,而是由他們自己的內部團隊參考我的程序中的安裝文檔。

  2. 服務器應用程序和數據庫服務器分開。

  3. 我首先使用實體​​框架 - 代碼(使用DropCreateDatabaseIfModelChanges)。

這麼多我的問題,謝謝大家的關注和答覆。我非常感謝您花時間以可以提供評論或意見形式的解決方案的形式。 謝謝。

+1

你想[遷移](https://msdn.microsoft.com/en-us/ data/jj591621.aspx),你提到你的問題。您可以在應用程序中添加遷移代碼,或關閉初始化程序(空)並提供腳本來更新數據庫。 [見這裏。](http://cpratt.co/migrating-production-database-with-entity-framework-code-first/) –

+0

謝謝@ SteveGreene..i已閱讀您的鏈接articel ....但文章使用visual studio解釋,也就是說,我的visual studio應該可以訪問數據庫...在這裏,我不能直接訪問生產數據庫...應用程序第一次運行時是否應用了代碼技巧..感謝您的評論... –

+0

您不需要(或想要)訪問其他PROD數據庫。通過遷移維護開發環境。當您想要部署時,構建您的應用程序並創建一個DBA運行的腳本(update-database -Script)。這將更新數據庫模式並在__MigrationHistory中插入一條記錄,告訴它它已經運行。 –

回答

0

OP 1:

我使用實體框架 - 第一代碼(與 DropCreateDatabaseIfModelChanges)。

答:

這是錯誤的做法,當你處理生產database.What,如果你做到這一點的方式會發生對數據庫的生產數據?所有數據都會在每次遷移時丟失。因此建議的生產方式是CreateDatabaseIfNotExists

CreateDatabaseIfNotExists :

這是默認初始值。顧名思義,如果每個配置都不存在,它將創建數據庫 。

OP 2:

如何更新在生產服務器上的數據庫架構?

答:

您可以使用下面command.After SQL腳本,你可以用它來對生產SQL服務器上運行。包管理器控制檯上

運行以下命令:

PM > Update-Database -Script 

您可以在這裏更多的信息:Getting a SQL Script

+0

hi @Sampath ...是的,這是真的....我會失去我們的數據,如果我使用CreateDatabaseIfNotExists,....但我有備份第一次運行應用程序之前的數據...我知道,.....它的問題,我沒有直接訪問到生產服務器上的現有數據庫...我還沒有學習更多關於如何更新數據庫-script,我會嘗試先學習......但是,如果進程在數據庫服務器上生產將不會是與應用程序的問題..感謝您的評論。 –

相關問題