Entity Framework の Migration をリセットする
Entity Framework の Code First を利用しています。
Model の変更点を Migration でDBに反映する訳ですが、Migration の数が多いと落ち着きません。
ということで、Migration をすべて削除して最新のModelで削除する手順を調べたのでメモ。
環境
- Visual Studio 2012
- Entity Framework 5.0.0
- SQL Server 2012
既存Migrationの削除
既にプロジェクトに存在している「Migration」フォルダ配下のファイルをすべて削除します。
Migration の実行結果を保存しているテーブルの削除
システムテーブルとして作成されている「__MigrationHistory」にMigration の履歴は保存されています。
Migration を反映しているDBに以下のSQLを実行します。
drop table __MigrationHistory
DBの全テーブルを削除します。
Visual Studio 2012 の SQL Server エクスプローラーなどを利用してMigration で作成されたテーブルをすべて削除します。
Migration の強制初期設定
対象プロジェクトのパッケージコンソールから以下のコマンドを実行し Migration 開始直後の状態にします。
PM> Enable-Migrations -Force
初期Migration の作成
初期 Migration として「Initial」を作成します。対象プロジェクトのパッケージコンソールから以下のコマンドを実行します。
PM> Add-Migration Initial
DBへの反映
対象プロジェクトのパッケージコンソールから以下のコマンドを実行します。
PM> Update-Database
以上