Resetuj Migracje Entity-Framework
Udało mi się przerobić moje migracje, użyłem IgnoreChanges
przy początkowej migracji, ale teraz chcę usunąć wszystkie moje migracje i zacząć od początkowej migracji z całą logiką.
Kiedy usuwam migracje z folderu i próbuję Add-Migration
nie generuje pełnego pliku (jest pusty - ponieważ nie wprowadziłem żadnych zmian od ostatniej, ale teraz usuniętej, migracji).
Czy jest jakieś polecenieDisable-Migrations , żebym mógł ponownie uruchomić Enable-Migrations
?
10 answers
Musisz:
- usuń stan: Usuń folder migracji w Twoim projekcie; oraz
- Usuń
__MigrationHistory
tabelę w bazie danych (może znajdować się w tabelach systemowych); następnie -
Uruchom następujące polecenie w konsoli Menedżera pakietów:
Enable-Migrations -EnableAutomaticMigrations -Force
Stosować z lub bez
-EnableAutomaticMigrations
-
I wreszcie możesz uruchomić:
Add-Migration Initial
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-30 23:04:30
Problem: migracje zostały zablokowane i chcesz je zresetować bez usuwania istniejących tabel.
Problem: nie można zresetować migracji z istniejącymi tabelami w bazie danych, ponieważ EF chce utworzyć tabele od zera.
Co robić:
Usuń istniejące migracje z tabeli Migrations_History.
Usuń istniejące migracje z folderu migracje.
Uruchom add-migration Reset. To będzie Utwórz migrację w folderze migracja, który obejmuje tworzenie tabel (ale nie będzie go uruchamiać, więc nie będzie błędu.)
Teraz musisz utworzyć początkowy wiersz w tabeli MigrationHistory, aby EF miał migawkę bieżącego stanu. EF zrobi to, jeśli zastosujesz migrację. Nie można jednak zastosować migracji, którą właśnie wykonałeś, ponieważ tabele już istnieją w Twojej bazie danych. Więc przejdź do migracji i skomentuj cały kod wewnątrz "Up" metoda.
Teraz uruchom update-database. Zastosuje migrację (nie zmieniając bazy danych) i utworzy wiersz migawki w MigrationHistory.
Zostały zresetowane migracje i mogą być kontynuowane przy normalnych migracjach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-28 18:07:29
A może
Update-Database –TargetMigration: $InitialDatabase
W Konsoli Menedżera Pakietów? Powinien zresetować wszystkie aktualizacje do bardzo wczesnego stanu.
Reference link: Code First Migrations-migracja do określonej wersji (w tym Downgrade)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 16:39:17
Aby to naprawić, musisz:
Usuń wszystkie*.pliki cs w folderze migracje.
-
Usuń tabelę _MigrationHistory w Bazie Danych
Bieg
Enable-Migrations -EnableAutomaticMigrations -Force
Bieg
Add-Migration Reset
Następnie, w klasie public partial class Reset : DbMigration
, musisz skomentować wszystkie istniejące i obecne tabele:
public override void Up()
{
// CreateTable(
// "dbo.<EXISTING TABLE NAME IN DATABASE>
// ...
// }
...
}
Jeśli przegapisz ten kawałek, wszystko zawiedzie i musisz zacząć od nowa!
- Teraz Biegnij
Update-Database -verbose
To powinno się udać, jeśli zrobiłeś powyższe poprawnie, a teraz możesz kontynuować jak zwykle.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-14 09:12:41
Moim problemem okazało się, że ręcznie usunąłem folder migracje. Zrobiłem to, ponieważ chciałem wykonać kopię zapasową zawartości, więc po prostu przeciągnąłem folder z projektu. Później naprawiłem problem, umieszczając go z powrotem (po wykonaniu kopii zapasowej), a następnie usuwając folder migracje, klikając prawym przyciskiem myszy go w Eksploratorze rozwiązań i wybierając Usuń z menu podręcznego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-24 13:39:01
W EntityFramework 6 proszę spróbować:
Add-Migration Initial
W celu aktualizacji początkowego pliku migracji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-21 11:17:55
W EF6
- Usuń wszystkie pliki w folderze 'migracje'... Ale nie "initial create" lub "config".
- Usuń bazę danych.
- teraz biegnij
Add-Migration Initial
. - Teraz możesz 'update-database' i wszystko będzie dobrze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-30 14:55:03
In Entity Framework Core.
- Usuń wszystkie pliki z folderu migracje.
- wpisz w konsoli
Dotnet EF database drop-f-v
Dotnet ef migrations add Initial
Aktualizacja bazy danych Dotnet ef
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-05 08:34:55
Biorąc pod uwagę, że wciąż pojawia się to podczas wyszukiwania EF w.Net Core, zamieszczę tutaj moją odpowiedź (ponieważ bardzo mnie to prześladuje). Zauważ, że istnieją pewne subtelności z wersją EF 6. Net (bez polecenia początkowego, i trzeba będzie usunąć Pliki "migawki")
[[3]}(testowane w. NET Core 2.1)Oto kroki:
- Usuń tabelę
_efmigrationhistory
. - wyszukaj całe rozwiązanie w poszukiwaniu plików zawierających migawkę w swojej nazwie, np.
ApplicationDbContextSnapshot.cs
oraz Usuń ich. - Run
Add-Migration InitialMigration
Uwaga: musisz usunąć wszystkie pliki migawek . Spędziłem niezliczone godziny na usuwaniu bazy danych... Jeśli tego nie zrobisz, wygeneruje to pustą migrację.
Również w #3 możesz po prostu nazwać swoją migrację, jak chcesz.
Oto kilka dodatkowych zasobów: asp.net CORE Migrations generated empty
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-25 22:52:11
Enable-Migrations -EnableAutomaticMigrations -Force
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-13 09:50:28