среда, 24 марта 2010 г.

Обновление-синхронизация модели и базы в Django

Обновление (синхронизация) базы и модели в Django в стандартной комплектации нельзя произвести. Команда
python manage.py syncdb

только создает таблицы, но не обновляет при соотв. изменениях в модели. Приходится удалять таблицы и снова запускать вышеуказанную команду.
Но выход есть в использовании south (http://south.aeracode.org/):
  • Устанавливаем:
    sudo easy_install south
  • В INSTALLED_APPS добавляем:
    'south',
  • Допустим, чтобы синхронизовать добавленное поле title_small в articles.Article
    $ python manage.py schemamigration articles title_section --add-field Article.title_small
    $ python manage.py migrate articles
    Здесь title_section - это имя миграции

2 комментария:

  1. Иван, спасибо большое за этот пост! Я так мучался делая сначала reset приложения а потом syncdb! Как раз собирался гуглить этот вопрос, думал почему-точ то это безнадежно :-)

    ОтветитьУдалить