我有用 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()
处理此类选择查询的方式是什么?我应该选择然后提交吗?还是选择然后回滚?或者在请求后完全关闭连接?但是关闭连接会导致每个请求都会打开与数据库的新连接。
最好的办法是什么?
本文描述了发生的情况以及如何处理:http://oddbird.net/2014/06/14/sqlalchemy-postgres-autocommit/ http://oddbird.net/2014/06/14/sqlalchemy-postgres-autocommit/
简短回答:SQLAlchemy 默认隐式打开新事务。您可以在每次 SELECT 之后提交或打开自动提交(阅读文章以了解更多信息)。
这是关于此事的 SO 帖子。
sqlalchemy、postgresql 和关系陷入“事务中空闲”状态 https://stackoverflow.com/questions/18438300/sqlalchemy-postgresql-and-relationship-stuck-in-idle-in-transaction
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)