gpt4 book ai didi

mysql - SQLAlchemy Session.commit() 挂起

转载 作者:行者123 更新时间:2023-11-29 03:47:57 25 4
gpt4 key购买 nike

我正在使用 SQLAlchemy 中的 scoped_sessions(到 MySQL)并在 tornado 的线程池中运行 SQL 提交。在我的单元测试中,第一次 Session.commit() 通过,但第二次 Session.commit() 挂起。我在第一次提交后正确关闭 session 。我启用了 SQLAlchemy 日志记录,我可以看到在第二次提交的 INSERT INTO ... 之后没有发出任何内容。

最佳答案

遇到同样的问题(稍后提交)让我今天早些时候想到了这个问题。我已通过确保只有一个 session 就位来解决问题。

在我的例子中,我正在为每个测试运行集成测试和 session 测试,并在拆卸时回滚为 described in docs .我已将所有数据库内容包装在负责测试设置的 DatabaseService 类中(派生的 TestDatabaseClass 在 ctor 中执行 session 设置)。

问题是我设法初始化了 DatabaseService 实例(使用测试设置)两次,并在后来创建的嵌套 session 的提交(或显式刷新调用)中遇到了挂起。因此,确保只有一个 DatabaseService 存在并且所有数据库查询都通过一个 session 确实解决了我的问题。

关于mysql - SQLAlchemy Session.commit() 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32929607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com