Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2012 01:24:02

max_143
Зарегистрирован: 2012-08-28
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение модели, ошибка

Была создана модель, через интерфейс администратора добавлял данные, всё было нормально, потом нужно было добавить ещё два поля, и тогда появилась ошибка Exception Value: no such column, после выполнения команды manage.py sqlall myproject показывает, что новые поля созданы, но что-то не так.

Офлайн

#2 Авг. 28, 2012 05:40:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Изменение модели, ошибка

Посмотрите прямо в базу, наверняка Вы там не увидите новых полей.

django-admin.py sqlall
Prints the CREATE TABLE and initial-data SQL statements for the given app name(s).
Ну понятно, скрипт Вам напишет код CREATE TABLE на основании ваших новых моделей, но это вовсе не означает, что изменения модели волшебным образом появятся в базе.
syncdb не добавляет и не изменяет столбцы. Для этого юзают south. Простой вариант - дропнуть таблицы и сделать syncdb, тогда таблицы создадутся с новыми полями. Сложнее - создать руками в нужной таблице нужные поля через консольку или какой-нибудь гуй типа phpMyadmin. Православно - установить south и научиться им пользоваться.



Офлайн

#3 Авг. 28, 2012 14:53:42

max_143
Зарегистрирован: 2012-08-28
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение модели, ошибка

Спасибо, буду разбираться с south

Офлайн

#4 Авг. 29, 2012 10:44:51

ad3w
От: Hua Hin, Thailand
Зарегистрирован: 2012-01-27
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

Изменение модели, ошибка

Ставите south, затем удаляете ваши поля из модели, выполняете команду

./manage.py convert_to_south app_name

Добавляете поля обратно и выполняете:

./manage.py schemamigration app_name --auto
./manage.py migrate app_name



Офлайн

#5 Авг. 29, 2012 11:50:18

adw0rd
От: Санкт-Петербург
Зарегистрирован: 2012-07-28
Сообщения: 107
Репутация: +  8  -
Профиль   Отправить e-mail  

Изменение модели, ошибка

ad3w
затем удаляете ваши поля из модели
комментируете те поля, которые вы добавили, но их нет в структуре БД
далее делаете то что сказал adwo




Python, Django, Flask, Git, Emacs, Nginx, MySQL, SphinxSearch, Redis, Linux, FreeBSD
Мой блог, я на GitHub

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version