Якщо ви не дбаєте про дані:
Найкращим способом було б скинути базу даних і запустити її 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 ), але я не пробував.