Ответ 1
Если вам не нужны данные:
Лучшим способом было бы сбросить базу данных и снова запустить 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), но я его не пробовал.