Если вас не волнуют данные:
Лучшим способом было бы отбросить базу данных и запустить ее syncdb
снова. Или вы можете запустить:
Для Django> = 1.5
python manage.py flush
Для Django <1.5
python manage.py reset appname
(вы можете добавить --no-input
в конец команды, чтобы она пропустила интерактивную подсказку.)
Если вам важны данные:
Из документов:
syncdb будет создавать таблицы только для моделей, которые еще не были установлены. Он никогда не будет запускать операторы ALTER TABLE для сопоставления изменений, внесенных в класс модели после установки. Изменения в классах моделей и схемах баз данных часто связаны с некоторой двусмысленностью, и в этих случаях Django должен будет угадывать, какие изменения нужно внести. Существует риск потери важных данных в процессе.
Если вы внесли изменения в модель и хотите изменить таблицы базы данных, чтобы они соответствовали друг другу, используйте команду sql для отображения новой структуры SQL и сравните ее с существующей схемой таблицы, чтобы внести изменения.
https://docs.djangoproject.com/en/dev/ref/django-admin/
Ссылка: FAQ - https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database
Люди также рекомендуют Юг ( http://south.aeracode.org/docs/about.html#key-features ), но я не пробовал.