Jak cofnąć ostatnie polecenie Add-Migration?


84

Utworzyłem migrację za pomocą Add-Migrationpolecenia, ale chciałbym zmienić nazwę tej migracji. Jak mogę cofnąć polecenie migracji, aby móc je ponownie wygenerować przy użyciu nowej żądanej nazwy?

Czy to tylko kwestia usunięcia wygenerowanych plików, czy może to być zły pomysł?

Odpowiedzi:


137

Jeśli nie korzystałeś Update-Database, możesz po prostu usunąć plik migracji. Jeśli uruchomiłeś aktualizację, cofnij ją za pomocą, Update-Database -TargetMigration "NameOfPreviousMigration"a następnie usuń plik migracji.

Odniesienie:

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


co by było, gdyby była to pierwsza dodana migracja?
Jimmyt1988,

@ Jimmyt1988, użyj Update-Database –TargetMigration: $ InitialDatabase
Seraphim

Następnie go usunąć? Nie rozumiem. Następnie co usunąć?
tnk479

@ tnk479 plik migracji. Zredagowano, aby było jaśniej
Colin

Przykro widzieć, że starsza wersja EF (jak EF 6) nie ma drop-databasei remove-migrationpoleceń
Hamza Khanzada

15

Jeśli nie wykonałeś jeszcze migracji za pomocą Update-Database, możesz uruchomić Add-Migrationponownie z tą samą nazwą (może być konieczne użycie -Force), aby ponownie wykonać rusztowanie. Jest to odnotowane w danych wyjściowych Add-Migrationpolecenia.


To nie jest dobre rozwiązanie, ponieważ nie przywróci ApplicationDbContextModelSnapshot
Trojaner

@Trojaner masz rację, więc odpowiedź stackoverflow.com/a/46921867/690958 jest lepszym rozwiązaniem
Alberto León

Czy może również wyczyścić pliki? U mnie pozostawia plik migracji, ale z pustymi metodami Up () i Down ().
Dmitry Karpenko

12

Po prostu użyj polecenia

Remove-migration

Usunie ostatnio dodaną migrację i aktualizuje migawkę. Nie wpłynie to na bazę danych, więc najpierw musisz wycofać bazę danych.


5
Tylko w EF Core.
John

Chciałbym, żeby było tam w EF 6 razem z drop-databasepoleceniami .. Jestem do tego zbyt przyzwyczajony
Hamza Khanzada


3

Aby dodać do odpowiedzi @Bena, używając dotnet efróżnych poleceń, jest to polecenie usunięcia, którego potrzebujesz:

dotnet ef migrations remove

Co spowoduje usunięcie ostatniej migracji i zaktualizowanie migawki modelu.


2

Zaktualizuj swoją ostatnią idealną migrację za pomocą tego polecenia:

Update-Database –TargetMigration

0

Po prostu użyj polecenia:

Update-Database nameMigration -context nameContext

I wtedy

Remove-migration -Context nameContext
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.