django.db.utils.ProgrammingError: 关系“django_site_domain_v2339b81_uniq”已经存在

Zor*_*gan 3 python django

当我尝试迁移时出现此错误。我试图Site does not exist通过这样做来解决错误:

python manage.py migrate --fake sites zero
python manage.py showmigrations
sites
 [ ] 0001_initial
python manage.py migrate --fake-initial
Run Code Online (Sandbox Code Playgroud)

然而这并没有解决问题。知道如何解决此错误:

django.db.utils.ProgrammingError: 关系“django_site_domain_v2339b81_uniq”已经存在

编辑

这是showmigrations显示的内容:

sites
 [X] 0001_initial
 [ ] 0002_alter_domain_unique
Run Code Online (Sandbox Code Playgroud)

我相信这可能是错误

rti*_*dru 5

看起来您的数据库已经迁移到迁移 0002。

运行python manage.py migrate --fake sites 0002- 看看这是否解决了问题。

  • 哦,所以您的迁移 0002 试图添加某种独特的约束。从mysql错误`django_site_domain_v2339b81_uniq`已经存在可以清楚地看出这一点。这告诉我唯一约束已经存在,这意味着此迁移已经运行。 (2认同)
  • 警告:如果这个迁移文件做了不止一件事,也许还创建了一个模型 A,并且在创建模型之前由于任何原因失败了,那么你的伪造将导致更多的错误。假设在唯一约束之后,您创建了表 A,但在两个步骤之间迁移失败。现在你已经伪造了它,django 假设表 A 也被创建了,而实际上它没有。 (2认同)