Na początkowych etapach mojego projektu wprowadzam wiele zmian w modelach, a tym samym wygenerowałem wiele migracji na południu dla moich aplikacji. Czy można je skonsolidować w jakikolwiek sposób przed przejściem do mojego serwera produkcyjnego w celu przeprowadzenia migracji, więc nie mam miliona migracji dla każdej aplikacji? A jeśli tak, to jak mam to zrobić?Konsolidacja Django South Migrations
6
A
Odpowiedz
5
Zawsze można usunąć istniejące migracje i create a new "initial" migration.
Aby to zrobić, trzeba będzie:
- Usuń pliki migracyjne dla Ciebie aplikacja (usuń folder łącznie)
- Run
./manage.py convert_to_south myapp
To zostawię was z pojedynczym migracja odpowiadająca bieżącemu stanowi Twojej aplikacji.
Ewentualnie zawsze można spakować najnowsze migracje razem:
- Usuń pliki migracyjne, które chcesz połączyć (tylko wtedy, gdy są one aktualne onces)
- Uruchom
./manage.py schemamigration myapp
Spowoduje to utworzenie nowej migracji, która będzie odpowiadać usuniętym migracjom.
Oba te prawdopodobnie zepsuć DB twojego rozwoju.
1
Ponieważ jest to środowisko programistyczne, to jak to zrobić (przy użyciu SQLite, patrz poniżej dla innych serwerów SQL):
- Czy wszystkie zmiany, niech pliki migracyjne piętrzyć. Brak dopuszczającej pliki migracja do VCS
- Po zakończeniu usunąć wszystkie nowe pliki migracji
- bazie Rename
- Run manage.py migracji. Spowoduje to utworzenie struktury bazy danych tak, jak przed wprowadzeniem w niej jakichkolwiek zmian.
- Uruchom program do zarządzania makra. Stworzy to niezbędne migracje, które odzwierciedlać aktualny stan
- Cofnąć oryginalna baza danych, która ma już ostateczną strukturę & dane
- Commit migracje plików
Przy zastosowaniu „właściwego” serwerów SQL, po prostu zachować dwa bazy danych: produkcja i rozwój. Zmień ustawienia projektu, aby wskazywała na produkcyjną bazę danych, zamiast zmieniać nazwę w kroku 3. Możesz także pominąć krok 4.
Powiązane problemy
- 1. Django i South: używanie south powoduje, że syncdb show myapp nie jest zsynchronizowany (używaj migracji).
- 2. Czy wyłączyć Django South podczas testów jednostkowych?
- 3. Reguła introspekcji Django-South nie działa
- 4. Błąd Django South: AttributeError: Obiekt "DateTimeField" nie ma atrybutu "model" "
- 5. Konsolidacja zależności ładunkowych
- 6. Narzędzie do zarządzania migracją NHibernate, takie jak EntityFramework, Django-South
- 7. Dodawanie pola Autoinkrement do istniejącego modelu z Django South?
- 8. Najprostszy sposób na zmianę nazwy modelu przy użyciu Django/South?
- 9. Sequelize Sync vs Migrations
- 10. Doctrine 2 Migrations Workflow
- 11. Django South - Jak zresetować historię migracji i rozpocząć czyszczenie w aplikacji Django
- 12. Jak wykluczyć migracje z South od Pylint?
- 13. Co to jest wyjątek Django South GhostMigrations i jak go debugować?
- 14. konsolidacja plików vim w folderze ~/.vim
- 15. django-południe z django-audit-log
- 16. South nie rozpoznaje modeli, gdy jest to pakiet
- 17. Jaki jest poprawny sposób radzenia sobie z migracją DB podczas korzystania z South, Django i Git?
- 18. Jak utworzyć nową bazę danych dla istniejącej aplikacji przy użyciu Django South i ustawić wartości domyślne?
- 19. Migracja Django South nie działa z pustym = True i puste = True
- 20. Wyjątki dla Entity Framework Code First Migrations
- 21. Wystąpił błąd podczas uruchamiania Enable-Migrations
- 22. Entity Framework Migrations - obsługa dynamicznego ciągu połączenia
- 23. Konsolidacja ciągłej integracji w ramach programu Play 2.0
- 24. Jak wyłączyć rejestrowanie debugowania południowego w django?
- 25. Czy narzędzie Django na południe (narzędzie migracji) działa na innodb?
- 26. Zmiana rozmiaru elementów DockLayoutPanel GWT North/South/East/West
- 27. Czy można zmienić lokalizację folderu "Migracje" EF Migrations?
- 28. Tabela SQL Azure nie została utworzona przy użyciu EF Migrations
- 29. Jak zaimportować dane za pomocą EntityFramework Code first Migrations
- 30. Entity Framework Code First Migrations: programowo pobieraj skrypty sql
, więc podstawą jest: nie, lepiej jest po prostu pozwolić migracji na własną rękę? – hkothari
@hkothari Tak zrobię, tak! –
Potrzebuję 'manage.py migrować zero --fake', aby wyczyścić swoją południową bazę danych również (przed convert_to_south lub' manage.py schemamigration --initial'.alternatywnie "--delete-ghost-migrations" selektywnie usunie wszystkie migracje usunięte z katalogu migracji –
hobs