Вопрос по python – Django & South: добавление нового поля, но ошибка DatabaseError «таблица уже существует»

3

Пытаясь добавить новое поле в существующую модель / таблицу, я получаю ошибку DatabaseError с «таблицей уже существует». Я запустил миграцию до этого, поэтому я немного озадачен, почему при добавлении нового поля появляется эта ошибка.

Выполненные команды:

python manage.py schemamigration app --auto
python manage.py migrate app

На предыдущие вопросы SO, подобные этому, был дан ответ с фальсификацией миграции.

python manage.py migrate app --fake
python manage.py migrate app

Проблема, которая возникает из этого, состоит в том, что столбец не создан. Таким образом, когда вы запустите сервер, вы увидите ошибку DatabaseError «нет такого столбца».

Что касается моей модели, я только добавляю CharField.

Заранее спасибо за помощь-

Я закомментировал поле, запустил schemamigration, затем мигрировал. Раскомментировали поле, запустили schemamigration, затем мигрировали, и это сработало. Не уверен, что я делал не так: / Emile

Ваш Ответ

3   ответа
1

запустил schemamigration, затем мигрировал. Раскомментировали поле, запустили schemamigration, затем мигрировали, и это сработало. Не уверен, что я делал неправильно.

0

когда вы что-то делаете при миграции и не позволяете югу знать об этом.

Если вы посмотрите на таблицу south_ * в базе данных, вы обнаружите, что south хранит журналы о миграциях db в базе данных. Распространенным способом является фальсификация миграции. Eстьfake аргумент за юг.

Здесь вы можете узнать, что это такое: http://south.readthedocs.org/en/latest/commands.html#options

12

schemamigration app --initial первыйwithout ваше новое поле, тогдаmigrate app --fake 0001 (или какой бы номер миграции он не возвращал), чтобы установить южную базу данных в это состояние (таблицы уже созданы).

Добавьте свое новое поле,then бежатьschemamigration myapp --auto, then мигрировать.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы