bimka
@bimka
Осваиваю Питон

Как откатиться в миграции, чтобы не возникало ошибки ValueError?

В класс Jokes в models.py добавил атрибут owner с внешним ключом settings.AUTH_USER_MODEL.
При миграции в консоли выпало предложение заполнить атрибуты для уже существующих объектов.
Я ввел заполнение как "user2", а надо было связать через id пользователя.
Теперь при миграции выдает ошибку ValueError: Field 'id' expected a number but got 'user2'.
Пробовал откатиться через python manage.py migrate blog zero, но все равно выдает ту же самую ошибку.
Как откатиться в миграции, чтобы этой ошибки не возникало?
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Это не так просто. Если что-то категорически пошло не так, то надо вручную поправить базу. Либо откатить базу аккуратно к предыдущему состоянию (например, удалить новые поля в таблицах), удалить строку о применённой миграции из таблицы django_migrations, удалить эту самую сбойную миграцию из APP_NAME/migrations, затем сделать makemigrations ещё раз и накатить полученную миграцию.

До кучи:

manage.py showmigrations - покажет все миграции во всех приложениях
manage.py sqlmigrate APP_NAME MIGRATION_NAME - покажет SQL-запросы, соответствующие этой миграции
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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