检查 sqlalchemy 对象的 sql 命令

问题描述 投票:0回答:1

我继承了一个用 python 编写的测试自动化套件,并使用 pytest 来驱动测试,并使用 sqlalchemy 来查询现有数据库。

我正在使用 pycharm,想在发出 sql 查询之前设置一个断点,这样我就可以准确地看到将发出什么 sql 语句。

是的,我可以(并且我已经)启用调试模式并且可以看到 SQL,但只有在测试运行完成之后。此外,由于日志输出中有数十个 SQL 查询,因此找到我想要检查的查询并不容易。此外,必须等到测试运行之后才有点违背了 IDE 的一大优势(能够实时检查对象并评估表达式)。

我可以简单地阅读 python 代码来查看代码如何组装 sqlalchemy 对象。但这不是我的代码,查询是动态构建的,并从多个位置组装 - 至少可以说,走这条路并不简单。

我尝试检查 sqlalchemy 对象,但我感兴趣的属性(select、where 等)是它们自己的对象,并且这些对象没有 sql 代码的纯文本属性。我可以在对象中找到一些 sql 的片段,但这就是我所能找到的。

是否有任何方法可以查看特定 sqlalchemy 对象即将发出的 sql 本机语法中的 sql 查询?

sqlalchemy pycharm pytest
1个回答
0
投票

找到解决方案:“str(stmt)”,其中 stmt 是 sqlalchemy 对象。

再简单不过了!我花了很长时间才找到它,但最终我找到了它(在 sqlalchemy 的常见问题解答中)

© www.soinside.com 2019 - 2024. All rights reserved.