Как добавить новое поле в модели Django - PullRequest
3 голосов
/ 14 февраля 2011

это моя модель:

class zjm_model(models.Model):
    a = models.CharField(max_length=36)
    b = models.CharField(max_length=36)

и таблица zjm_model содержит много данных в моем MySQL, а теперь,

Я хочу добавить новое поле:

class zjm_model(models.Model):
    a = models.CharField(max_length=36)
    b = models.CharField(max_length=36)
    c = models.CharField(max_length=36)

но, когда я запускаю manage.py syncdb, он показывает это:

No fixtures found.

так, как я могу добавить новое поле в мою базу данных,

спасибо

Ответы [ 3 ]

10 голосов
/ 14 февраля 2011

Миграция базы данных не встроена в Django, поэтому вам нужно использовать стороннюю библиотеку. Я настоятельно рекомендую юг .

5 голосов
/ 14 февраля 2011

юг очень хорош и все такое, но если это очень редкая разовая вещь, просто запустите ваш любимый инструмент mysql и сделайте что-то вроде: ALTER TABLE foo ADD COLUMN wotsit VARCHAR (100) - я не могупомните точный синтаксис ...

Но +1 для юга.

0 голосов
/ 14 февраля 2011

Вы должны сбросить ваши предыдущие данные.

manage.py dumpdata > dump.json

И вы можете загрузить свои данные после syncdb.(столбец "c" должен иметь значение null)

manage.py loaddata dump.json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...