回滚到以前的迁移时出错
Errors when rolling back to previous migration
这是我目前的状态:
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
我的建议是打开您的 sql 控制台并转储 django_migrations
table.
DELETE FROM django_migrations WHERE app='mainapp'
然后确保 migrations/ 文件夹中的所有文件都已签入版本控制并删除它们!然后做
./manage.py makemigrations mainapp
./manage.py migrate mainapp --fake
如果 --fake 不起作用,是时候采取绝望的措施了 --fake-initial
但是当您将应用程序部署到其他地方时,很可能您将不得不经历所有这些过程再次:(
这是我目前的状态:
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
我的建议是打开您的 sql 控制台并转储 django_migrations
table.
DELETE FROM django_migrations WHERE app='mainapp'
然后确保 migrations/ 文件夹中的所有文件都已签入版本控制并删除它们!然后做
./manage.py makemigrations mainapp
./manage.py migrate mainapp --fake
如果 --fake 不起作用,是时候采取绝望的措施了 --fake-initial
但是当您将应用程序部署到其他地方时,很可能您将不得不经历所有这些过程再次:(