2016-06-21 4 views
0

Я пытаюсь преобразовать одно из полей моей модели (единиц) из FloatField в IntegerField.Переименование поля модели Django

Моя стратегия такова;
Шаг 1: Добавление поля '_units' (IntegerField) Шаг 2: Копирование данных из 'единиц' до '_units'
Шаг 3: Удалить 'единицы'
Шаг 4: Переименовать '_units' как 'единицы'

Миграции для шагов 1 - 3 выполняются нормально, но на этапе 4 Я получаю сообщение об ошибке при выполнении тестов; django.db.utils.OperationalError: no такой столбец: myapp_mymodel._units

Для этого шага я сделал пустую миграцию, затем добавил к операциям; migrations.RenameField ('MyModel', '_units', 'units')
Где я иду не так?

+0

Есть ли проблемы с 'migrations.AlterField'? –

+0

Ах да, гораздо проще. Спасибо –

+0

Сделал ответ из моего комментария. –

ответ

3

Используйте migrations.AlterField он сделает все 4 шага в одном.

+0

Я об этом не знал. За все эти месяцы я делал все возможное. ЛОЛ. Жизнь и учеба ... ха-ха! Благодарю. –

+0

@ Ev. Возможно, возникнут некоторые проблемы, если вы изменяете поля, которые нельзя конвертировать друг в друга. Поэтому прочтите документацию. –

+0

Да. После того, как я увидел ваш пост, я пошел и прочитал документацию. Это может иметь некоторые ограничения для некоторых баз данных, но для меня это будет сделано. –

Смежные вопросы