我从Django网站上删除了一个不必要的表和模型。我在调用migrations.DeleteModel(...)之前删除了所有的foriegn密钥引用,但在运行迁移时我仍然收到以下提示:
以下内容类型陈旧且需要删除:
myapp | MyDeletedModel
外键与这些内容类型相关的任何对象也会 被删除。您确定要删除这些内容类型吗?如果 你不确定,回答没有'。
Type 'yes' to continue, or 'no' to cancel: yes
我很困惑为什么我收到这个提示有没有办法可以阻止这个提示在我们上线时显示?我们使用CI环境,我们没有用户可以回答"是"或"不"
由于
答案 0 :(得分:13)
contenttypes框架包含对模型表的引用。在这种情况下,您对刚刚删除的表有陈旧的引用。回答yes
并删除陈旧的内容类型是完全安全的。如果您重命名了一个指向它的GenericForeignKey
的表,那将是一个不同的故事,在这种情况下,其他对象将ForeignKey
与ContentType
,并且删除将级联那些关系。
在实时环境中,您可以传递--noinput
选项以禁止此提示。但是,它将默认为no
。让一些陈旧的contenttypes
躺在身边通常不是一个问题。