1. ホーム
  2. entity-framework

[解決済み] EFのマイグレーション。最後に適用したマイグレーションをロールバックしますか?

2022-03-19 22:33:49

質問

これは本当によくある作業のようですが、簡単にできる方法が見当たりません。

最後に適用したマイグレーションを元に戻したいのですが、どうすればいいですか?私は、次のような簡単なコマンドを期待していました。

PM> Update-Database -TargetMigration:"-1"

その代わり、思いつくのは

PM> Get-Migrations

Retrieving migrations that have been applied to the target database.
201208012131302_Add-SystemCategory
201207311827468_CategoryIdIsLong
201207232247409_AutomaticMigration
201207211340509_AutomaticMigration
201207200025294_InitialCreate

PM> Update-Database -TargetMigration:"CategoryIdIsLong"

(少なくとも、タイムスタンプを飛ばして、名前だけでいいのですが...)

もっと簡単な方法はないのでしょうか?

どのように解決するのですか?

EF5.0では、ご指摘の方法が推奨されています。そのため

PM> Update-Database -TargetMigration:"NameOfSecondToLastMigration"

または、あなたのマイグレーションの例を使用して

PM> Update-Database -TargetMigration:"CategoryIdIsLong"

一つの解決策として、上記の手順を自動化するラッパーPSスクリプトを作成することができます。さらに、このための機能要求を作成したり、より良い実装を試みたりすることもできます。 https://github.com/dotnet/ef6