DBの状態を、指定したマイグレーション適用時点まで戻す
DBの状態を、指定したマイグレーション適用時点まで戻したい場合がある。
まずはそのマイグレーションIDを調べる。
マイグレーションファイルはソリューションエクスプローラのMigrations
フォルダ内に存在存在する。
このマイグレーションファイルの名前がマイグレーションId。この例だと20190813015415_Initial
。
現在、初回マイグレーションした後にEmployee
テーブルにAge
カラムを追加した状態。
VSのSQL Server Object Explorer
で見てみるとテーブルは以下のとおりAge
カラムが追加されている。
このAge
カラムの追加を取り消したい。
DBの状態を指定したマイグレーション適用時点まで戻すには、Update-Database マイグレーションId
を実行する。
今回はAge
カラムを追加するマイグレーションをDBに適用する前の状態に戻したいので、パッケージマネージャコンソールでUpdate-Database 20190813015415_Initial
と実行する。
PM> Update-Database 20190813015415_Initial Reverting migration '20190813015516_AddAgeColumn'. Done.
これでDBがAge
カラムを追加する前の状態に戻っている。
Age
カラムを追加するマイグレーションファイルは不要になったのでRemove-Migration
コマンドで削除する。
PM> Remove-Migration Removing migration '20190813015516_AddAgeColumn'. Reverting model snapshot. Done.
初回(DB生成)のマイグレーションをなかったことにしたい
初回のマイグレーションの結果をやり直したいのであれば、DBを削除すればいい。
DBを削除する場合は、VSのパッケージマネージャコンソールでDrop-Database
を実行する。
PM> drop-database Confirm Are you sure you want to perform this action? Performing the operation "Drop-Database" on target "database 'hellocoredb' on server '(localdb)\MSSQLLocalDB'". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):y Dropping database 'hellocoredb'. Successfully dropped database 'hellocoredb'.
そしてRemove-Migration
を実行する。