web-dev-qa-db-ja.com

EF 5 Code First Migrationsから完全なSQLスクリプトを生成します

Entity Framework 5 Code First Migrationsを使用して、初期(空の)状態から最新の移行までの完全なデータベーススクリプトを作成するにはどうすればよいですか?

MSDN Blog のブログ投稿では、これを行うことを提案していますが、空のスクリプトを作成しているようです:

Update-Database -Script -SourceMigration: $InitialDatabase
132
Matt Wilson

APIが変更されたように見えます(少なくとも、私にとっては機能しません)。

パッケージマネージャーコンソールで次を実行すると、正常に機能します。

Update-Database -Script -SourceMigration:0
268
Matt Wilson

Matt wilsonの答えに追加するために、私はたくさんのコードファーストエンティティクラスがありましたが、バックアップを取っていなかったのでデータベースはありませんでした。そこで、Entity Frameworkプロジェクトで次のことを行いました。

Visual Studioでパッケージマネージャーコンソールを開き、次を入力します。

Enable-Migrations

Add-Migration

移行に「初期」などの名前を付けてから、移行を作成します。最後に次を入力します。

Update-Database

Update-Database -Script -SourceMigration:0

最後のコマンドは、エンティティクラスからデータベーステーブルを作成します(エンティティクラスが整形式である場合)。

8
Tahir Khalid

ここで終わるエンティティフレームワークコアを使用している人向け。これがあなたのやり方です。

# 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スクリプトをオプションで生成できます。このスクリプトは、まだデータベースに適用されていない場合にのみ移行を適用します。これは、データベースに適用された最後の移行が正確にわからない場合、またはそれぞれが異なる移行にある複数のデータベースに展開する場合に役立ちます。

5
Justin Lessard