2013-10-02 6 views
20

私のためにデータベースを作成するSQLスクリプトを生成しようとしています。これまで私はこれを試しました:エンティティ・フレームワーク・マイグレーション - 現在のデータベース・モデルのSQLスクリプトを生成します

しかし、それらの両方は、私に最初の移行から最後まで変わっているスクリプトを与えています。データベースの初期状態はなく、データベース自体の作成と、プロジェクトにマイグレーションを追加したときの単一のテーブルが含まれている必要があります。

マイグレーションで完全なSQLスクリプトが提供されていないときに、今すぐモデルを再作成するにはどうすればよいですか?

+0

私が理解しているように、常に初期状態にする必要があります。カップルの質問;エラーで移行ファイルを削除した可能性はありますか?そうでなければ、-scriptを使用せずにデータベースを更新するときに、migrationsユーティリティがあなたに与えるエラーは何ですか?マイグレーションユーティリティは、しばしばその情報を使用して必要に応じてデータベースを作成しますが、データベースの作成は通常、接続文字列に依存するため、マイグレーションには表示されません。あなたのスクリプトには何が含まれていますか?あなたが言及した最初のテーブルを除くすべて? – tne

答えて

43

試してみてください。

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

対象の移行に最初のデータベースからスクリプトを含める必要があります。最低でも "MigrationHistory"テーブルが必要です。

あなたはまたして移行を再作成してみてください:初期のデータベースに戻って戻す

1)。すべてがうまくいけば、データベースからすべてのテーブルを削除する必要があります。

Update-Database -TargetMigration: $InitialDatabase 

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

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

Add-Migration -Name: [MigrationName] 

これが役立つことを望みます。私はまた、thisブログ記事を見ることをお勧めします。 「マイグレーションを削除する前に削除しないでください(ダウン)」というヒント#5をメモしておいてください。私の経験では、これは追いついていない場合、移行に関する問題を引き起こします。

関連する問題