ソースコントロールから公開すると、Windows Azureのコードの最初のエンティティフレームワークの移行を有効にする方法
-
21-12-2019 - |
質問
私はソース管理を通して自動的に紺碧に出版するプロジェクトを持っています。Azureを構成して、エンティティフレームワークコンテキストの適切な接続文字列を持つようにしました。Webサイトに関連付けられているAzureデータベースに対して自動的に移動する必要があります。
公開ダイアログにオプションがあることを知っていますが、web.configにマジックが行われるように手動で追加する必要があります。ソース管理からAzure Runマイグレーションが必要なのは、これが不可能な場合は別の方法がありますか?
私はEF 6を使っています。
解決
実行時に移行するようにコンテキストを設定することです。実行中のプロセスごとに1回だけこれを実行する必要があるため、コンテキスト上の静的コンストラクタはそれを置くためのかなりまともな場所です。
static MyContext()
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Data.Migrations.Configuration>());
}
.
また、接続文字列がAzureで設定されていることを確認してください。
自動移行(デプロイされたサイトでは悪い考えである)を使用している場合は、有効
も必要になります。他のヒント
そのような移行スクリプトを実行するには、Azure WebJobsを使用することをお勧めします。 > http://www.hanselman.com/blog/introduningWindowsazureWebJobs.aspx
Azure WebJobsは、.bat、.exeなどのスクリプトを実行するためのスケジューラです。基本的にUnixマシンのCronのように機能しますが、直感的で使いやすいUIを提供します。だから@Romokuの場合、彼はコンソールアプリを作成できます。それはEF 6.0を使用し、そのすべての.NETオファーが彼の移行をスケジュールし、神経障害の追跡ログをスケジュールします。Webサイトが実行されているのと同じマシンと環境で動作します。