【问题标题】:Django - Relation "relation" does not exist. Cannot run python manage.py migrate?Django - 关系“关系”不存在。无法运行 python manage.py 迁移?
【发布时间】:2016-02-06 21:42:54
【问题描述】:

所以我很愚蠢,我去删除我的 django 应用程序中的一个表,所以打开 psql 并运行“Drop table ;”并放下桌子。然后我删除了我的模型并运行了“python manage.py migrate”,我得到了这个错误......

django.db.utils.ProgrammingError: relation "textchange_myuser" does not exist

在它上面的其他东西中。

所以现在我无法正确删除该表,也无法将其取回。我该怎么办?

谢谢。

【问题讨论】:

  • 你试过添加--fake选项吗?
  • 我没有,怎么用?
  • 运行python manage.py migrate yourapp --fake
  • 它到底是做什么的?
  • 它会告诉 django “好的,这个迁移已经被应用了,但实际上并没有改变你的数据库”

标签: python django postgresql


【解决方案1】:

根据我的评论,在您的情况下,您可能会运行:

python manage.py migrate yourapp --fake

“伪造”应用迁移但实际上并未更改您的数据库。

您可以阅读更多HERE

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我从 postgres 中删除了一个表,然后 django 无法检测到更改。我尝试了一切,但 django 没有创建新表。最后我用另一种方法解决了这个问题。

    登录到您的数据库手动创建表。 - 从 django 本身获取创建命令。

    python manage.py sqlmigrate 'yourapp' 001
    

    这将为您提供 django 用于创建表的初始命令。

    逐一获取所有迁移并通过命令行对数据库执行命令。

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 2019-02-04
      • 2017-03-25
      • 2018-04-07
      • 2021-07-07
      • 2016-08-15
      • 2018-05-15
      • 2015-09-01
      • 1970-01-01
      相关资源
      最近更新 更多