EF移行を使用して、EFコードファーストDBモデルへの変更を追跡しています。次に、移行ごとに1つのSQLスクリプトを生成して、そのスクリプトのセットをDBAに渡す必要があります。
Update-Database -Script ...
でSQLスクリプトを生成することができました
ただし、これを自動化したいと思います。 -ScriptスイッチがSQLの書き込み先を指定するパラメーターを受け入れることを望んでいましたが、そうではありません。また、SQLスクリプトはSTDOUTではなく一時ファイルに書き込まれるため、出力リダイレクトは機能しません。スクリプトからその一時ファイルを取得する方法がわかりません。
移行-> SQLスクリプトの生成を自動化する方法はありますか?たぶん、私が気付いていない魔法のパワーシェルのトリックがいくつかありますか?
編集:ちなみに、migrate.exeやその他の「移行対応」アプローチを使用することはできません。SQLスクリプトを配信する必要があります。
ついに私は解決策を見つけました。私が気付いていなかったのは、次のようにC#コードからSQLスクリプトを生成できることです。
_using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
var migrator = new DbMigrator(new Configuration());
var scriptor = new MigratorScriptingDecorator(migrator);
var sql = scriptor.ScriptUpdate("Name-Of-Source-Migration", "Name-Of-Target-Migration");
_
migrator.GetLocalMigrations()
とともに、生成されたスクリプトの粒度を完全に制御できます。