2014-11-04 40 views
0

我有問題發佈我的MVC項目。MVC發佈錯誤與自動化

我得到了錯誤「自從創建數據庫以來,支持'ApplicationDbContext'上下文的模型已經發生了變化,考慮使用Code First Migrations來更新數據庫(http://go.microsoft.com/fwlink/?LinkId=238269)。」,這是通過automigrations解決的。

我在另一臺機器上通過ftp發佈了我的項目,然後在模型結構上添加了一些更改,在我的計算機上運行,​​它啓動成功並在同一臺機器上再次發佈。當我嘗試在那裏運行它時,發生了一個錯誤 - 「自從創建數據庫以來,支持'ApplicationDbContext'上下文的模型已經發生了變化。考慮使用Code First Migrations來更新數據庫(http://go.microsoft.com/fwlink/?LinkId=238269)。」

我在Windows 7上使用IIS7。

+0

如果你改變你的模型必須遷移 – InferOn 2014-11-04 14:00:24

+0

如何更新所在的計算機上的數據庫更新數據庫到我指到ftp? – Devegnik 2014-11-04 14:03:33

回答

2

爲了另一個數據庫服務器上更新數據庫,你可以把這種方式:

  1. 配置連接字符串以使用新的服務器
  2. 運行Update-database命令從包管理器控制檯,在某些情況下,你將需要使用-force旗。但要小心,這可能會刪除一些數據。此命令也有 - ConnectionStringName參數,這可以幫助你進行更新。

這是一個非常糟糕的做法,我不建議這樣更新數據庫。

我會建議你爲你的上下文設置Initialzier。我通常使用MigrateDatabaseToLatestVersion,在更改模型後,您需要使用Add-migration命令添加新的遷移。

要建立它在應用程序啓動方法,使用這個命令:

Database.SetInitializer<ApplicationDbContext>(new MigrateDatabaseToLatestVersion<ApplicationDbContext>()); 
0

更改模型後必須更新數據庫。另一臺機器和您的電腦使用相同的數據庫?如果沒有,你必須更新這個數據庫。

+0

如何更新位於我所指的ftp計算機上的數據庫?這可以自動發生嗎? – Devegnik 2014-11-04 14:05:27

+1

遷移,特別是自動遷移*僅用於開發*。在生產中,您有責任對生產數據庫執行任何模式更改。這是設計的,因爲它會*非常不明智地讓自動改變你的生產模式有任何東西。 – 2014-11-04 14:08:25