回答:
APIが変更されたようです(または、少なくとも私には機能しません)。
パッケージマネージャーコンソールで以下を実行すると、期待どおりに動作します。
Update-Database -Script -SourceMigration:0
dotnet ef migrations script
です。その他のマニュアルの:docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/...
エンティティフレームワークコアを使用しているすべての人にとって、ここまでです。これがあなたのやり方です。
# Powershell / Package manager console
Script-Migration
# Cli
dotnet ef migrations script
-From
and -To
パラメータを使用して、データベースを特定のバージョンに更新する更新スクリプトを生成できます。
Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts
このコマンドにはいくつかのオプションがあります。
以下からの移行は、スクリプトを実行する前にデータベースに適用された最後のマイグレーションでなければなりません。マイグレーションが適用されていない場合
0
は、これを指定します(これがデフォルトです)。移行は、スクリプトを実行した後、データベースに適用される最後の移行です。デフォルトでは、プロジェクトの最後の移行になります。
冪等のスクリプトは、必要に応じて生成することができます。このスクリプトは、まだデータベースに適用されていない場合にのみ、移行を適用します。これは、データベースに最後に適用された移行が正確にわからない場合、またはそれぞれが異なる移行である可能性がある複数のデータベースに展開する場合に役立ちます。
Matt wilsonの回答に追加するために、私はバックアップをとっていなかったので、コードファーストエンティティクラスをたくさん用意しましたが、データベースはありませんでした。そこで、Entity Frameworkプロジェクトで次のことを行いました。
Visual Studioでパッケージマネージャーコンソールを開き、次のように入力します。
Enable-Migrations
Add-Migration
移行に「初期」などの名前を付けてから、移行を作成します。最後に次のように入力します。
Update-Database
Update-Database -Script -SourceMigration:0
最後のコマンドは、エンティティクラスからデータベーステーブルを作成します(エンティティクラスが適切に形成されている場合)。