質問: Azure DevOpsでEntity Frameworkコアを使用し、MSSQLサーバー2016でIISを対象とするASP.netアプリケーションを構築しています。 テストサーバーは、IISとSQLサーバーインスタンスの両方を含むローカルWindows 2016マシンです。 コード自体のテストサーバーへの継続的な展開を可能にする展開ワークフローを正常に作成しましたが、データベースを展開する方法が見つかりません。最初のバージョンはasp.netコア2.0を対象としていたため、コマンドラインを使用してIISの外部でアプリケーションを起動し、データベースの更新をトリガーできましたが、2.2およびインプロセスIIS展開に切り替えると、明らかにその機能が失われました。 DBの作成を含め、展開パイプラインでサーバーへのデータベースの展開を統合したいのですが、Azure Devopsを使用してこれを行う方法が見つかりません。AzureSQLインスタンスをターゲットにできますが、 mは何か、ローカルのものではありません。 そう: * SDKがインストールされていないマシンでASP.NETコア2.2インプロセスアプリケーションを使用して、手動でデータベースを作成および設定するにはどうすればよいですか? * データベースを**ローカルMSSQLサーバー**データベースにデプロイするためにAzure DevOpsパイプラインに追加する必要があるもの
回答: 編集:ローカルにデプロイするために、私は以下の2つのステップに従いました: **1.データベーススクリプトの作成** ローカルデータベースインスタンスにデータベースを作成する通常のデータベース作成スクリプトを作成できます。 **2.移行を適用する** 最初にデータベース作成スクリプトを実行し、次に移行を適用する単純なコンソールアプリケーションを作成します。 ``` myDbContext.Database.Migrate(); ``` それが私がそれを機能させた方法です。 **AzureへのDBの公開に関する以前の内容:** "Azure SQL Publish"タスクが必要です。前提条件は、Azure SQLデータベースが既に作成されていることです。 手順: *ステップ1:ビルドパイプラインで移行スクリプトを生成するコマンド* 移行スクリプトを生成するコマンドラインタスクを作成します。 ``` dotnet ef migrations script -i -o %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql --project EfMigrationApp.Database\EfMigrationApp.Database.csproj --startup-project EfMigrationApp\EfMigrationApp.csproj -i -o %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql ``` *ステップ2:リリースパイプラインでのAzure SQL Publish* アクション:公開タイプ:SQLスクリプトファイルSQLスクリプトは次のようになります。 ``` $(System.ArtifactsDirectory)/_$(Build.DefinitionName)/drop/migrate.sql ``` CIパイプラインの設定については、この記事を参照してください。 CDパイプラインの設定については、この記事を参照してください。