發布ASP.NET Core應用程序時自動執行遷移

asp.net-core ef-migrations entity-framework-core webdeploy webdeploy-3.5

在使用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 5 RC 1使用Web Deploy發佈到IIS

在ASP 4應用程序中使用Web部署我有其他數據庫選項:

ASP 4使用Web Deploy發佈到IIS

一般承認的答案

所以我在我的ef database命令中添加了選項-environment 。現在它有效:

"postpublish": ["dnx ef database update -e Staging"]

我有四個不同的appsettings.json ,每個環境都有不同的連接字符串。只需要指示命令工作的環境。


熱門答案

使用context.Database.Migrate()

您可以從Startup類中調用它:

using (var context = new MyContext(...))
{
    context.Database.Migrate();
}

它將在應用程序啟動時將您的數據庫遷移到最新版本。但要小心這樣做,可能會註釋掉這些代碼並僅在您想要運行遷移時才推薦使用。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow