DatabaseError:当前事务被中止,在事务块结束之前忽略命令?
问题描述
我收到了很多错误消息:
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.
相关文章