Używam EF 6,0 do mojego projektu w C # z ręcznymi migracjami i aktualizacjami. Mam w bazie około 5 migracji, ale zdałem sobie sprawę, że ostatnia migracja była zła i nie chcę jej. Wiem, że mogę wrócić do poprzedniej migracji, ale kiedy dodam nową (naprawioną) migrację i uruchomię Update-Database, stosowana jest nawet błędna migracja.
Próbowałem wrócić do poprzedniej migracji i usunąć plik z błędną migracją. Ale potem, kiedy próbuję dodać nową migrację, pojawia się błąd podczas aktualizacji bazy danych, ponieważ plik migracji jest uszkodzony (dokładniej, pierwsza linia kodu zmienia nazwę tabeli A na B i jest następna, EF próbuje zaktualizować tabelę za pomocą nazwa A - może to jakiś błąd EF).
Czy jest jakieś zapytanie, które mogę uruchomić, które powie EF coś w stylu „Zapomnij o ostatniej migracji, jakby nigdy nie istniała, była zła”? Coś w rodzaju Remove-Migration.
Edit1
Znalazłem rozwiązanie odpowiednie dla mnie. Zmiana modelu na dobry stan i uruchomienie Add-Migration TheBadMigration -Force
. Spowoduje to ponowne utworzenie szkieletu ostatniej, niezastosowanej migracji.
W każdym razie to wciąż nie daje pełnej odpowiedzi na pierwotne pytanie. Jeśli zaktualizuję bazę danych do złej migracji, nie znalazłem dobrego sposobu na przywrócenie i utworzenie nowej migracji, z wyjątkiem złej.
Dzięki