【问题标题】:[django]Error: contenttypes couldn't be reset[django]错误:无法重置内容类型
【发布时间】:2011-11-15 09:23:01
【问题描述】:

我在加载夹具之前重置了内容类型(请参阅Problems with contenttypes when loading a fixture in Django)。

但无法重置内容类型:

...project_dir > manage.py 重置内容类型

您已请求重置数据库。这将不可逆转地破坏 数据库中“内容类型”应用程序的任何数据 “我的数据库”。您确定要这样做吗?

输入“yes”继续,或输入“no”取消:yes

错误:错误:无法重置内容类型。可能的原因:

  • 数据库未运行或配置不正确。
  • 至少有一个数据库表不存在。
  • SQL 无效。

提示:查看“django-admin.py sqlreset contenttypes”的输出。 这就是该命令无法运行的 SQL。

完整错误:(1217, 'Cannot delete or update a parent row: a 外键 contraint 失败')

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 你能不能输入命令django-admin.py sqlreset contenttypes看看有什么错误?
  • 对此有何见解?你设法解决了这个问题吗?

标签: django reset loaddata contenttypes


【解决方案1】:

关于您发布的问题,还有另一个answer - 使用natural keys 表示固定装置。

错误“无法删除或更新父行:外键约束失败”表示无法删除内容类型行,因为有另一个对象指向该行。例如。如果有任何非空白的通用外键关系就是这种情况。

如果您确实需要重置内容类型应用程序,您可以获取所需的 SQL 命令并将其更改为使用 CASCADE 语句。然而,这是危险的,因为它不仅会删除内容类型,还会删除另一个表中指向内容类型的行。

所以我建议使用自然键重新创建固定装置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2021-09-08
    • 1970-01-01
    • 2019-03-28
    • 2021-01-24
    相关资源
    最近更新 更多