Вот мой текущий статус:Ошибки при откате к предыдущей миграции
mainapp
[X] 0001_initial
[X] 0002_authorprofile_uuid
[X] 0003_auto_20151107_1243
[X] 0004_article_approved
[X] 0005_auto_20151129_0950
[X] 0006_article_category
[X] 0007_auto_20160501_1601
Я хочу, чтобы вернуться в 0005. Тем не менее, когда я бегу /manage.py migrate mainapp 0005_auto_20151129_0950
я получаю ошибку ValueError: The database backend does not accept 0 as a value for AutoField.
Это ошибка Я исправил в models.py, поэтому я хочу вернуться к 0005 и начать новую работу, а также выполнить миграцию.
class Article(models.Model):
category = models.ForeignKey(Category, default = 1) #trying to add this and set default value. It was first set to 0 but changed it to 1 after it failed
Извините, теперь у меня есть лучшее понимание реальной проблемы. После того, как вы изменили поле с Auto на ForeignKey, вы, похоже, закончили тем, что вставляли в это поле 0. Mysql, например, не позволяет 0 в автоматических полях, если вы пытаетесь вставить нуль, он вставляет следующее значение автоматического увеличения, поэтому проблема не в коде, а в данных, или это то, что мне кажется. – e4c5
@ e4c5 в основном 0007 считает, что поле находится в базе данных, но это вообще-то нет. там нет колонки. поэтому, если я изменяю значение по умолчанию, оно не может, потому что столбец не существует. если я пытаюсь удалить поле, это невозможно, потому что его не существует – User
@ e4c5 что делать, если я просто добавляю столбец с помощью SQL-команд, а затем переношу, чтобы удалить его? то падение будет работать. – User