django - 使用现有 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.
解决方案
AOneToOneField
基本上是一个ForeignKey
with unique=True
(但有一些不同之处可以使使用 ORM 更容易)。外键self
字面意思是同一个表中其他条目的外键。self
作为主键的外键没有意义,基本上是不可能和荒谬的。
我不知道inspectdb
最后是怎么弄出这样一个领域的。无论如何,您应该更改此字段以反映您的主键实际情况。大多数情况下,它会沿着 anIntegerField
或 an AutoField
(基本上是一个自动递增的整数字段)的行,或者在某些情况下是 a UUIDField
:
class Djangomodel(models.Model):
id = models.AutoField(primary_key=True)
推荐阅读
- python - 将数据框与自身合并,其中外键引用其键
- c++ - 'ChaCha' 尚未使用 Crypto++ 在此范围内声明?
- python - 树莓派 Crontab Python 脚本需要写权限
- c++ - 如何在 cmake 中与 libdl 库链接
- amazon-web-services - AWS GameLift:错误!无法编辑舰队。启动路径必须以“/local/game”开头
- google-analytics - 事件操作在 Google Analytics 中显示未定义
- django - 尝试转换为班级时出现问题
- javascript - 可能吗?我在 Fb 页面上看到一些奇怪的行为
- java - 如何捕获 ConfigurationParsingException?
- html - 如何在某些文本和表单的输入字段之间创建间隙?