Po dodaniu nowej tabeli, która ma pewne powiązania z moją bazą danych, a następnie uruchomię Add-Migration
widzę, że kod jest generowany w metodzie Up
, aby dodać tabelę i jej relacje. Jednak wolę definiować relację za pomocą płynnego interfejsu API w metodzie OnModelCreating
. W jaki sposób te dwie metody wchodzą w interakcje? Czy mogę usunąć kod z metody Up
, która definiuje relację dla instancji?Jak odnoszą się migracje OnModel i migracje automatyczne?
6
A
Odpowiedz
11
Każdy z nich ma zupełnie inny cel:
OnModelCreating
służy do definicji inline-biegle API modelu. Te definicje wraz z domyślnymi konwencjami, adnotacjami danych i klasami konfiguracji stanowią kompletną definicję modelu.- Explicit migracji określa, co należy zrobić, aby przenieść je do bazy danych do postaci wymaganej przez obecnego modelu
Teraz, w jaki sposób te dwa odnoszą? Migracja ma dwa wejścia, które służą do generowania kodu migracji (metody Up
i Down
). Jedno wejście jest ostatnim rekordem migracji przechowywanym w tabeli __MigrationHistory
. Ten rekord zawiera serializowany model reprezentujący bazę danych. To wejście jest opcjonalne, ponieważ pierwsza migracja musi działać bez niego. Drugie wejście jest obowiązkowe - bieżący model jest pobierany przez wykonanie kodu w bieżącym zestawie =>Add-Migration
wykona twój OnModelCreating
, aby uzyskać bieżący model i porównać go z modelem pobranym z bazy danych. Wynikiem porównania jest zawartość metod Up
i Down
w migracji jawnej.
Powiązane problemy
- 1. Migracje danych i AppEngine
- 2. Definiowanie metod w Rails migracje
- 3. Przepływ pracy nhibernate + migracje
- 4. "Przekierowanie" Migracje EF
- 5. Migracje wtyczek dla Redmine
- 6. Migracje schematów Tabela
- 7. Sprawdź oczekujące migracje Django
- 8. Yii automatyczny db migracje
- 9. EF: Automatyczne migracje są uruchomione, gdy są wyłączone.
- 10. Który projekt powinien włączyć migracje
- 11. Kod Pierwsze migracje i procedury przechowywane
- 12. F # dostęp do danych i migracje EF
- 13. Cofnij wszystkie migracje rails lub upuść tabele i zmodyfikuj migracje (rozpocznij od zera)
- 14. Jak wykluczyć migracje z South od Pylint?
- 15. Jak prawidłowo obsługiwać migracje schematów mangusty?
- 16. Migracje Rails: załaduj domyślne dane
- 17. Jak obsługiwać migracje doktryn w pakietach
- 18. Meteor jak przeprowadzić migracje baz danych?
- 19. Pokaż oczekujące migracje w szynach
- 20. Jak mam uruchamiać migracje alembików na Heroku?
- 21. Jak pisać warunkowe migracje w szynach?
- 22. Jak zastosować migracje z kodu (EF podstawowa)
- 23. Migracje Entity Framework przestały wykrywać aktualizacje POCO
- 24. Aktualizacja schematu doktryny lub migracje Doctrine
- 25. Alembik automatycznie generuje puste migracje Flask-SQLAlchemy
- 26. Migracje Laravel zmieniają domyślną wartość kolumny
- 27. Migracje Entity Framework - Zarządzanie w Oddziałach
- 28. Włącza migracje z kontekstem w osobnym zestawie?
- 29. Laravel 4 Migracje rzucające 1072 błąd
- 30. Jakie polecenia Entity Framework 6 umożliwiają migracje?
Dzięki! Tak więc, jeśli dobrze zrozumiem, kod w metodzie "Up" będzie odzwierciedlał definicje ustawione w metodzie "OnModelCreating" (zakładając, że dodałeś Migration po napisaniu płynnej definicji API oczywiście). Nie wolno * nie * usuwać tych odbitych definicji z 'Up'. – Dabblernl
Tak, to prawda. –