DatabaseError:当前事务被中止,在事务块结束之前忽略命令?

2022-01-31 00:00:00 python postgresql django psycopg2

问题描述

我收到了很多错误消息:

I got a lot of errors with the message :

"DatabaseError: current transaction is aborted, commands ignored until end of transaction block"

从 python-psycopg 更改为 python-psycopg2 作为 Django 项目的数据库引擎之后.

after changed from python-psycopg to python-psycopg2 as Django project's database engine.

代码保持不变,只是不知道那些错误来自哪里.

The code remains the same, just don't know where those errors are from.


解决方案

当查询产生错误并且您尝试运行另一个查询而不首先回滚事务时,这是 postgres 所做的.(您可能会将其视为一项安全功能,以防止您破坏数据.)

This is what postgres does when a query produces an error and you try to run another query without first rolling back the transaction. (You might think of it as a safety feature, to keep you from corrupting your data.)

要解决此问题,您需要找出代码中执行错误查询的位置.使用 log_statement<可能会有所帮助/a> 和 log_min_error_statement 您的 postgresql 服务器中的选项.

To fix this, you'll want to figure out where in the code that bad query is being executed. It might be helpful to use the log_statement and log_min_error_statement options in your postgresql server.

相关文章