【问题标题】:django. I cannot drop objectsdjango。我不能放下物体
【发布时间】:2023-03-15 01:39:01
【问题描述】:

我有 1.2.3 版的 django 配置了 postgres,我刚刚做了一个 manage.py 重置应用程序,它一直在等待,等待,等待。所以我 ctrl+z 杀死它。

所以我进入了内置管理界面并尝试删除一些对象。当我选择删除一个对象时,页面会加载并加载,直到超时并且永远不会删除该对象。如果我想删除一个对象,也是一样;它会超时。这发生在我所有的对象上。在我的应用程序的上一个版本和这个版本之间,我唯一能想到的变化是我添加了几个manytomanyfields和一个自引用外键。

它永远不会出错或任何东西。超时发生在我的 nginx 服务器上,并设置为 2 分钟,这显然应该足够长以删除一个对象,所以我永远不会看到 django 错误屏幕。到目前为止,它总共只有大约 10 个与此应用程序相关的对象。

我仍然可以创建对象和一切,只是我找不到删除与我的应用程序相关的所有对象的方法。

有什么想法吗?我知道我可以直接删除数据库并创建一个新数据库,理论上问题会得到解决,但我想尝试弄清楚发生了什么,以便将来避免这个问题。

【问题讨论】:

    标签: django postgresql


    【解决方案1】:

    也许仍然有一个数据库事务打开一个对象上的排他锁。 尝试重新启动数据库守护程序。

    【讨论】:

    • 我同意这很可能是另一个仍在使用这些对象的连接。但是不需要重新启动。只需确保所有连接都已关闭(例如,来自您的应用程序)。您可以查询视图 pg_stat_activity 以了解您有多少连接
    • 感谢您的意见。你说得对,重启是没有必要的。
    • 我的数据库确实有 9 个打开的连接。我试图找到一种方法来杀死打开的连接,但找不到方法,所以我只是重新启动了 postgres。您知道是什么导致这些连接保持打开状态并阻止我删除模型吗?我想从这次经历中吸取教训,以防止它再次发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多