題
在使用Web Deploy將我的ASP 5應用程序發佈到IIS時,有什麼方法可以自動執行遷移代碼(EF 7)?
我試過了
在project.json
,我在scripts
添加了這段代碼:
"scripts" : { "prepublish": ["dnx ef database update", "other commands..."], "postpublish": ["dnx ef database update"] }
沒有人為我工作。
附加信息
我按照此鏈接上的說明使用Web部署將我的ASP 5 RC-1 Web應用程序部署到IIS。
在發佈設置中執行此操作後,我有:
在ASP 4應用程序中使用Web部署我有其他數據庫選項:
所以我在我的ef database
命令中添加了選項-environment
。現在它有效:
"postpublish": ["dnx ef database update -e Staging"]
我有四個不同的appsettings.json
,每個環境都有不同的連接字符串。只需要指示命令工作的環境。
您可以從Startup
類中調用它:
using (var context = new MyContext(...))
{
context.Database.Migrate();
}
它將在應用程序啟動時將您的數據庫遷移到最新版本。但要小心這樣做,可能會註釋掉這些代碼並僅在您想要運行遷移時才推薦使用。