2016-04-13 1 views
0

私はコードに最初のマイグレーションを使用して作成されたプロジェクトをデータベースに接続しています。 Migrationsフォルダ内のすべての移行csファイルは削除されますが、データベースに__MigrationHistoryテーブルがあります。コードファーストマイグレーションの問題

私はモデルを変更し、データベースに変更を適用する必要があります。 "add-migration"コマンドで正しい更新スクリプトが生成されるように、履歴テーブルから移行ファイルを復元することはできますか?

+0

既に適用されている移行をソリューションから削除しないようにしてください。 CVSを使ってファイルをリストアすることができれば、それはあなたのための良いステップです。 __MigrationHistoryテーブルは、テーブルを作成した移行があったことを認識していますが、プロジェクトには何も分かりません。 –

答えて

1

配備されたすべてのデータベースに移行が適用されると、新しいベースラインを再確立するだけで大​​したことはありません。以前の移行にロールバックする機能は失われますが、必要に応じて実行する方法があります。私は頻繁にマイグレーションをロールアップしたり、マイグレーションを使用していない既存のデータベースでマイグレーションを開始します。ここで

は、あなたが戻って同期して取得するために何ができるかです:

1) Remove the __MigrationHistory table from your database. 
2) Remove your migration folder from the project. 
3) enable-migrations 
4) add-migration InitialSnapshot -IgnoreChanges // tells EF to do a snapshot only 
5) update-database 

今、あなたは今、あなたは、モデルの変更を行うに行く第二の移行を追加して生成することができますあなたの現在のモデル状態を持つ単一の移行を持っています更新スクリプト。

更新データベース-script -SourceMigration $ InitialDatabase

また、あなたが不足している項目をチェックしたい場合は、すべてのデータベース・オブジェクトを表示します冪等のスクリプトを行うことができますEF operates under the hoodの詳細については、こちらを参照してください。

関連する問題