加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在PostgreSQL触发器中记录Python的Stacktrace

发布时间:2020-12-13 16:18:11 所属栏目:百科 来源:网络整理
导读:我试图找到一个在我们的生产服务器上不时发生的错误,但是无法以其他方式再现:数据库中的某些值以我不想要的方式改变. 我可以写一个PostgreSQL触发器,如果??发生这个错误就会触发,并从所述触发器引发异常.我会看到执行不需要的SQL语句的Python回溯. 但在这种
我试图找到一个在我们的生产服务器上不时发生的错误,但是无法以其他方式再现:数据库中的某些值以我不想要的方式改变.

我可以写一个PostgreSQL触发器,如果??发生这个错误就会触发,并从所述触发器引发异常.我会看到执行不需要的SQL语句的Python回溯.

但在这种情况下,我不想停止处理请求.

有没有办法从PostgreSQL触发器中记录Python / Django回溯?

我知道这不是小事,因为DB代码在具有不同用户ID的不同linux进程下运行.

我使用的是Python,Django,PostgreSQL,Linux.

我想这并不容易,因为DB触发器在与python解释器不同的上下文中运行.

请询问您是否需要更多信息.

Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?

不,那里没有

>(SQL)查询在DBMS服务器上执行,触发器内的代码也是如此
> Python代码在客户端上执行,这是一个不同的进程,可能由不同的用户执行,甚至可能在不同的机器上执行.

服务器(检测到条件)和客户端(需要执行stackdump)之间的唯一连接是连接的套接字.您可以尝试通过某些状态代码扩展服务器的回复(如果有的话),客户端使用该状态代码来堆叠自己.这仅在触发器是当前事务的一部分时才起作用,而不是某些不相关的过程.

另一种方式是:大规模伐木.使DBMS将每个提交的SQL写入其日志文件.这可能会导致大量的日志条目,您必须检查它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读