回答:
以下を使用して、任意の移行にロールバックできます。
Update-Database -TargetMigration:"MigrationName"
すべてのマイグレーションをロールバックしたい場合は、以下を使用できます。
Update-Database -TargetMigration:0
または同等:
Update-Database -TargetMigration:$InitialDatabase
場合によっては、データベースとすべての移行クラスを削除することもできます。
enable-migrations
再びしなければならない状態になるということでした。これらは明らかに役に立ちますが、OPが求めていることを達成しますか?(「まあ、彼は答えを受け入れた」と返信しないでください。私はこれを理解しようとしているのです。賢者ではありません)。
enable-migrations
もう一度実行して、データベースをゼロから開発している場合は、最後の文(データベースとすべての移行関連コードを削除する)に従うだけです。既存のデータベースで移行を使用し始めた場合は、最初に2番目または3番目のコマンドを使用してすべての移行を元に戻し、次にMigrationHistory
テーブルとすべての移行関連コードを削除する必要があります。開始位置に移動するはずです。また、(マイグレーションを使用する前の)バックアップからデータベースを開始し、マイグレーション関連のすべてのコードを削除することもできます。
-TargetMigration:0
Entity Framework Coreの場合:
Update-Database -Migration:0
Remove-Migration
明確にするために、LocalDbを使用している場合、最初からやり直したいときは、データベースエクスプローラーでデータベースを削除してからenable-migrations -force
、パッケージマネージャーコンソールに入力します。App_Dataフォルダーを介してデータベースを削除しないでください。削除すると、次の問題が発生します。
Update-Database -Migration 0
Remove-Migration
ドキュメントはこちら:https : //docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell#update-database とこちら:https : //docs.microsoft.com/en-us/ef / core / miscellaneous / cli / powershell#remove-migration
私の推測では、彼らのドキュメントには間違って書かれています
Update-Database -Target MigrationName