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

    "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"]

私は4つの異なるappsettings.json各環境の異なる接続文字列があります。コマンドが動作する環境を指定するだけで済みます。


人気のある回答

context.Database.Migrate()を使用します。

Startupクラスから呼び出すことができます:

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

アプリケーションの起動時にデータベースを最新バージョンに移行します。しかし、注意して、このコードをコメントアウトして、マイグレーションを実行したいときにだけ推薦してください。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ