![](/img/trans.png)
[英]How to properly update SQL database in Azure after EF Code First model of asp.net mvc model change?
[英]EF 5 - Model first database migration: change model after published to remote production server?
我首先使用MVC 5,EF 5.0代碼進行開發。 我使用文件共享文件夾發布該項目。
更改模型后,我可以使用數據庫遷移來更新正在開發的localDb。 但是,在將項目發布到遠程服務器后,它顯示了在使用完整SQL數據庫服務器的生產Web服務器上更改模型和需要遷移的錯誤。
我知道我可以刪除生產服務器上的數據庫,並讓它重新創建數據庫。 但是,表中已經有用戶輸入的數據。
有沒有一種方法可以應用模型/數據庫更改而無需重新創建數據庫?
是的,有辦法。 其實有幾個。
您可以生成可應用於生產數據庫的SQL腳本。 使用-Script標志在程序包管理器控制台中運行Update-Database,如下所示:
更新數據庫-腳本-SourceMigration:InitialMigration -TargetMigration:LatestMigration
或使用Red Gate SQL Compare之類的工具來生成腳本。
在應用程序啟動時,您可以通過注冊MigrateDatabaseToLatestVersion數據庫初始化程序來自動升級數據庫:
Database.SetInitializer(new MigrateDatabaseToLatestVersion());
您可以在文章MSDN-Code First Migrations中閱讀有關這兩種方法的更多信息。
我從來沒有選擇刪除生產數據庫。 EF代碼首先不是為了這個目的,而只是為了開發,
有兩個選項,如果您使用Visual Studio Ultimate,則SQL菜單下有一個架構比較工具。 或者,您可以使用Red Gate SQL比較工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.