Azure でホストされている Sql Db を作成または更新するための移行を実行するのに問題があります。それらは LocalDb に対してローカルで正常に実行されますが、Azure にリリースするときには完全に無視されるようです。
詳細: - Asp.Net MVC 5.2.3 - Entity Framework 6.1.3 - Visual Studio Team Services (オンライン) - Azure Web App & Azure SQL Db (Imagine / Dreamspark サブスクリプション)
CI を使用しない別のアプリケーションを作成しましたが、Visual Studio 内で発行機能を使用したところ、問題なく発行され、機能しました。サブスクリプションでは 1 つのデータベースしか許可されていないため、その Web アプリとデータベースを Azure から削除しました。
VSTSでビルド定義を設定する際に欠けているものかもしれないと思っていますが、何がわからないのですか。
私が試してみました:
- https://blogs.msdn.microsoft.com/webdev/2014/04/08/ef-code-first-migrations-deployment-to-an-azure-cloud-service/ (これは私には何もしませんでした)
- https://www.benday.com/2016/11/07/using-tfs-build-to-deploy-entity-framework-database-migrations-with-migrate-exe/ (ビルド エラーが発生しましたが、 bin フォルダーにリリース定義があります)
...そして他の多くのもの(ウィンドウをもう開いていないか、それらもリンクします)。
私の現在のビルド手順は次のとおりです。
- NuGet 復元 - NuGet インストーラー
- ビルド ソリューション - Visual Studio ビルド
- アセンブリのテスト - Visual Studio テスト
- パブリッシュ シンボル パス - インデックス ソースとパブリッシュ シンボル
- アーティファクトの発行 - ビルド アーティファクトの発行
私のローカル環境では、Enable-Migrations、Add-Migration、Update-Database のときに EF が機能します。上記の手順のいずれもこれを行わないと推測しているため、1 つ以上の手順が必要です。Ben Day のブログは機能しているように見えますが、何らかの理由で私の bin/release ファイルが見つかりません。
上記の成功したビルド定義がリリースされると、実際のアプリケーションは Azure に正常にデプロイされます。データベースが完全に無視されているだけです。SSMS を使用して Azure db を確認しましたが、存在する間はテーブルやデータがありません。
私は何が欠けていますか?
ありがとう。
**編集 - 欠けていた単純なアイテムを見つけました。データベースの接続文字列を Azure の Web アプリに追加する必要があります。現在、初期テーブルがあり、それらのテーブルを使用してデータを保存していますが、移行を取得していません。この 2 日間で私が行ったことで、最初のテーブルができあがりました。今..それが何であったかを思い出してください。
**2 回目の編集 - したがって、VSTS で接続文字列を修正する前に、テーブルがリリース データベースに組み込まれたと思います。私が試したことの 1 つは、別のデータベース プロジェクトを作成することでした。ある時点でそれをプッシュすると、その時点で存在していたテーブルもプッシュされてリリースされたと思いますが、アプリケーションとデータベースを接続していなかったためにそれらを見ることができませんでしたか? いずれにせよ、EF の移行はまだ認識されていません。Ben Day の提案をもう一度試しましたが、ビルド エラーが発生します。
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
私はEF 6.1.3を使用しています