Entity Framework 5 Code First Migrationsを使用して、初期(空の)状態から最新の移行までの完全なデータベーススクリプトを作成するにはどうすればよいですか?
MSDN Blog のブログ投稿では、これを行うことを提案していますが、空のスクリプトを作成しているようです:
Update-Database -Script -SourceMigration: $InitialDatabase
APIが変更されたように見えます(少なくとも、私にとっては機能しません)。
パッケージマネージャーコンソールで次を実行すると、正常に機能します。
Update-Database -Script -SourceMigration:0
Matt wilsonの答えに追加するために、私はたくさんのコードファーストエンティティクラスがありましたが、バックアップを取っていなかったのでデータベースはありませんでした。そこで、Entity Frameworkプロジェクトで次のことを行いました。
Visual Studioでパッケージマネージャーコンソールを開き、次を入力します。
Enable-Migrations
Add-Migration
移行に「初期」などの名前を付けてから、移行を作成します。最後に次を入力します。
Update-Database
Update-Database -Script -SourceMigration:0
最後のコマンドは、エンティティクラスからデータベーステーブルを作成します(エンティティクラスが整形式である場合)。
ここで終わるエンティティフレームワークコアを使用している人向け。これがあなたのやり方です。
# Powershell / Package manager console
Script-Migration
# Cli
dotnet ef migrations script
https://docs.Microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts
このコマンドにはいくつかのオプションがあります。
from移行は、スクリプトを実行する前にデータベースに適用される最後の移行である必要があります。移行が適用されていない場合は、
0
を指定します(これがデフォルトです)。to移行は、スクリプトの実行後にデータベースに適用される最後の移行です。デフォルトでは、プロジェクトの最後の移行になります。
idempotentスクリプトをオプションで生成できます。このスクリプトは、まだデータベースに適用されていない場合にのみ移行を適用します。これは、データベースに適用された最後の移行が正確にわからない場合、またはそれぞれが異なる移行にある複数のデータベースに展開する場合に役立ちます。