61

Ich habe eine Migration mit dem Befehl Add-Migration erstellt, aber ich möchte den Namen dieser Migration ändern. Wie kann ich den Migrationsbefehl rückgängig machen, sodass ich ihn mit dem neuen gewünschten Namen neu generieren kann?Wie mache ich den letzten Add-Migration Befehl rückgängig?

Ist es nur eine Frage der Löschung der generierten Dateien, oder könnte dies eine schlechte Idee sein?

Antwort

90

Wenn Sie Update-Database nicht verwendet haben, können Sie es einfach löschen. Wenn Sie das Update ausgeführt haben, rollen Sie es mit Update-Database -TargetMigration "NameOfPreviousMigration" zurück und löschen Sie es dann.

Referenz:

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

+0

+1: nice Referenz beim Lesen! –

+0

Was ist, wenn die erste Migration hinzugefügt wurde? – Jimmyt1988

+0

@ Jimmyt1988, verwenden Sie die Update-Datenbank -TargetMigration: $ InitialDatabase – Seraphim

10

Wenn Sie die Migration noch mit Update-Datenbank ausgeführt haben, können Sie laufen Add-Migration erneut mit dem gleichen Namen (möglicherweise -Force verwenden müssen) zu Führen Sie das Gerüst erneut aus. Dies wird in der Ausgabe des Befehls Add-Migration vermerkt.

1

Mit EntityFrameworkCore 2.0 kommt der Modell-Snapshot. Sie müssen den Befehl remove migration ausführen, um den Modell-Snapshot zu aktualisieren. Ich habe gelesen, dass EF Core jedes Update erkennt und den Snapshot für Sie wiederherstellt, wenn Sie die Migration manuell löschen, aber dies hat für mich nicht funktioniert.

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

Verwandte Themen