Asp.net-Core

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

  • April 28, 2020

問題

使用 Web Deploy 將 ASP 5 應用程序發佈到 IIS 時,有什麼方法可以自動執行遷移程式碼 (EF 7)?

我試過

  • 在中project.json,我在中添加了這段程式碼scripts

"scripts" : { "prepublish": ["dnx ef database update", "other commands..."], "postpublish": ["dnx ef database update"] }

沒有一個對我有用。

附加資訊

我按照此連結上的說明使用 web deploy 將我的 ASP 5 RC-1 Web 應用程序部署到 IIS。

在發佈設置中這樣做後,我有:

ASP 5 RC 1 使用 Web 部署發佈到 IIS

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

ASP 4 使用 Web 部署發佈到 IIS

使用 context.Database.Migrate()

Startup你可以從你的班級呼叫這個:

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

它會在應用程序啟動時將您的數據庫遷移到最新版本。但要小心,也許註釋掉這段程式碼,只有在你想執行遷移時才取消註釋。

顯然這個過程現在不起作用。 https://github.com/aspnet/Home/issues/622 發布後,您應該會找到名稱為“配置文件名稱”-publish.ps1 的 power shell 腳本。然後在靠近此文件末尾的這三行下方添加您的命令。您可能希望使用 powershell 使其更易於調試。

‘呼叫 Publish-AspNet’ | 寫詳細

呼叫 Publish-AspNet 執行發布操作

發布-AspNet -publishProperties $ publishProperties -packOutput $ 打包輸出

引用自:https://stackoverflow.com/questions/35324156