web-dev-qa-db-ja.com

最後のAdd-Migrationコマンドを元に戻すにはどうすればよいですか?

Add-Migrationコマンドを使用して移行を作成しましたが、その移行の名前を変更したいと思います。移行コマンドを元に戻し、新しい希望の名前を使用して再生成できるようにするにはどうすればよいですか?

生成されたファイルを削除するだけの問題ですか、それとも悪い考えでしょうか?

77
Miguel Angelo

Update-Databaseを使用していない場合は、移行ファイルを削除するだけです。更新を実行した場合は、Update-Database -TargetMigration "NameOfPreviousMigration"を使用してロールバックし、移行ファイルを削除する必要があります。

参照:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

118
Colin

Update-Databaseを使用してまだ移行を実行していない場合は、同じ名前(-Forceを使用する必要がある場合があります)でAdd-Migrationを再度実行して、scaffoldingを再実行できます。これは、Add-Migrationコマンドの出力に示されています。

14
Adrian

コマンドを使用するだけ

Remove-migration

最後に追加された移行を削除し、スナップショットを更新します。データベースには影響しないため、最初にデータベースをロールバックする必要があります。

6
Tomasz Maj

EntityFrameworkCore 2.0には、モデルのスナップショットが付属しています。モデルのスナップショットを更新するには、remove migrationコマンドを実行する必要があります。移行を手動で削除した場合、EF Coreが更新を認識し、スナップショットを元に戻すことを読みましたが、これはうまくいきませんでした。

https://docs.Microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

https://docs.Microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#dotnet-ef-migrations-remove

4
Ben

このコマンドを使用して、最後の完全な移行を更新します。

Update-Database –TargetMigration
2

@Benの答えに追加するには、dotnet efコマンドを使用するときに、これが必要な削除コマンドです。

dotnet ef migrations remove

これにより、最後の移行が削除され、モデルのスナップショットが更新されます。

1
VME