我有应用程序编写Python 3.6,Flask和SQLAlchemy(PostgreSQL)。
我在数据库中挂起idle in transaction
连接时遇到了问题。这可能是因为我没有在选择查询后提交或回滚。
我使用默认的SQLALchemy配置:db = SQLAlchemy()
创建挂起连接的示例端点:
class Test(Resource):
def get(self, pk):
return User.query.get(pk).serialize()
处理此类选择查询的方式是什么?我应该选择然后提交吗?或选择然后回滚?请求后完全关闭连接?但是关闭连接会导致每次请求都会打开新的数据库连接。
最好的方法是什么?
答案 0 :(得分:2)
本文介绍了正在发生的事情以及如何处理它:http://oddbird.net/2014/06/14/sqlalchemy-postgres-autocommit/
简短回答:SQLAlchemy默认隐式打开新事务。您可以在每个SELECT之后提交或打开自动提交(阅读文章以了解更多信息)。
这是关于此事的SO帖子 sqlalchemy, postgresql and relationship stuck in "idle in transaction"