Mam starszą bazę danych, której używam w aplikacji w Django. Użyłem funkcji administratora django do wygenerowania pliku models.py z istniejących tabel.
Jeśli wprowadzę zmiany do modeli, takie jak dodanie unique_together
ograniczenie do modeli, czy zmiany są zarządzane przez Django, czy też muszę w jakiś sposób zastosować wspomniane zmiany modelu do bazy danych?
Odpowiedzi:
3 dla odpowiedzi № 1Aby django mógł wykryć zmiany, musisz użyć narzędzia migracji innej firmy o nazwie south
. Teraz, skoro już popełniłeś sens, uciekłeś python manage.py syncdb
, musisz usunąć tabelę i zacząć od nowa.
Oto, jak to zrobić (po usunięciu tabeli):
- Zainstaluj na południe za pomocą
pip install south
- Dodaj południe do zainstalowanych aplikacji i upewnij się, że pojawia się przed wszystkimi innymi utworzonymi przez Ciebie aplikacjami
- Uruchom to:
python manage.py schemamigration --inital <your app name>
- Uruchom to:
python manage.py migrate <your app name>
- Uruchom to:
python manage.py syncdb
<- ostatni raz będziesz musiał go uruchomić :)
Mam nadzieję, że to pomogło.