首页 > 解决方案 > 使用现有 MSSQL 数据库时迁移期间图形错误中的循环依赖

问题描述

我已将 Django 连接到 MS SQL Server 2017。但在迁移过程中出现以下错误

django.utils.topological_sort.CyclicDependencyError:图中的循环依赖:

我看到运行后生成的这个模型是python manage.py inspectdb造成这种情况的模型。有什么问题?

class Djangomodel(models.Model):
    id = models.OneToOneField('self', on_delete=models.DO_NOTHING, db_column='Id', primary_key=True)  # Field name made lowercase.

标签: django

解决方案


AOneToOneField基本上是一个ForeignKeywith unique=True(但有一些不同之处可以使使用 ORM 更容易)。外键self字面意思是同一个表中其他条目的外键。self作为主键的外键没有意义,基本上是不可能和荒谬的。

我不知道inspectdb最后是怎么弄出这样一个领域的。无论如何,您应该更改此字段以反映您的主键实际情况。大多数情况下,它会沿着 anIntegerField或 an AutoField(基本上是一个自动递增的整数字段)的行,或者在某些情况下是 a UUIDField

class Djangomodel(models.Model):
    id = models.AutoField(primary_key=True)

推荐阅读