Я недавно обновил свою модель, добавил к ней BooleanField, однако, когда я делаю python manage.py syncdb, он не добавляет новое поле в базу данных для модели. Как я могу это исправить?
python manage.py syncdb
Django имеет встроенную поддержку миграции - посмотрите документацию .
Django не поддерживает миграции из коробки. Для Django есть подключаемое приложение, которое делает именно это, и прекрасно работает. Это называется Юг .
Джанго в настоящее время не делает этого автоматически. Ваши варианты:
python manage.py sql (appname)
alter table
Выполните следующие действия:
Как указано в верхнем ответе, я попытался использовать Юг , и после часа разочарования в связи с неясными ошибками миграции решил вместо этого использовать Django Evolution .
Я думаю, что с ним легче начать, чем с Саутом, и он отлично сработал, когда я в первый раз набрал ./manage.py evolve --hint --execute, поэтому я доволен.
./manage.py evolve --hint --execute
Некоторое время не использовал django, но я помню, что syncdb выполняет команды alter для таблиц db. Вы должны отбросить таблицу, затем снова запустить, и она будет создана снова.
edit: извините, НЕ выполняет изменения.
В Джанго 1.6
Сначала мы запустили - python manage.py sql <app name>
python manage.py sql <app name>
Тогда мы должны бежать - python manage.py syncdb
Если вы запускаете Django с Apache и MySQL, перезапустите apache после выполнения миграции с makemigrations .