Jeśli nie dbasz o dane:
Najlepszym sposobem byłoby porzucenie bazy danych i syncdb
ponowne uruchomienie . Lub możesz biegać:
Dla Django> = 1.5
python manage.py flush
Dla Django <1.5
python manage.py reset appname
(możesz dodać --no-input
na końcu polecenia, aby pominąć interaktywny monit).
Jeśli zależy Ci na danych:
Z dokumentów:
syncdb utworzy tabele tylko dla modeli, które nie zostały jeszcze zainstalowane. Nigdy nie wyda instrukcji ALTER TABLE, aby dopasować zmiany wprowadzone w klasie modelu po instalacji. Zmiany w klasach modeli i schematach baz danych często wiążą się z pewną formą niejednoznaczności iw takich przypadkach Django musiałoby odgadnąć, jakie zmiany należy wprowadzić. Istnieje ryzyko, że w trakcie tego procesu zostaną utracone krytyczne dane.
Jeśli dokonałeś zmian w modelu i chcesz dopasować tabele bazy danych, użyj polecenia sql, aby wyświetlić nową strukturę SQL i porównaj ją z istniejącym schematem tabeli, aby ustalić zmiany.
https://docs.djangoproject.com/en/dev/ref/django-admin/
Źródła: FAQ - https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database
Ludzie polecają również South ( http://south.aeracode.org/docs/about.html#key-features ), ale ja tego nie próbowałem.