27

データベースを作成する SQL スクリプトを生成しようとしています。これまでのところ、私はこれを試しました:

Update-Database -Script -SourceMigration: $InitialDatabase
Update-Database -Script -SourceMigration:0

しかし、どちらも最初の移行から最後の移行までのスクリプトを提供しています。また、データベース自体の作成を含むデータベースの初期状態と、プロジェクトに移行を追加したときにそこにあった単一のテーブルはありません。

では、移行によって完全な SQL スクリプトが得られない場合、モデルを再作成するにはどうすればよいでしょうか?

4

1 に答える 1

51

試す:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName]

これには、初期データベースから移行対象へのスクリプトが含まれている必要があります。少なくとも「MigrationHistory」テーブルが必要です。

次の方法で移行を再作成することもできます。

1) 初期データベースに戻します。すべてがうまくいけば、データベースからすべてのテーブルが削除されます。

Update-Database -TargetMigration: $InitialDatabase

2) Migrations フォルダー内のすべての移行ファイルを削除します。構成クラス ファイルを削除する必要はありません。

3) 新しい移行を追加します。ただし、これにより、初期データベースから最新モデルへの移行ファイルが作成されます。

Add-Migration -Name: [MigrationName]

うまくいけば、これが役に立ちます。このブログ記事も参照することをお勧めします。ヒント 5 の「バックアウトする前に移行を削除しない (ダウン)」に注意してください。私の経験では、従わないと移行に問題が発生します。

于 2013-10-03T13:18:48.847 に答える