Python 获取SQLAlchemy和psycopg2执行的所有SQL语句的文本表示?

Python 获取SQLAlchemy和psycopg2执行的所有SQL语句的文本表示?,python,postgresql,testing,sqlalchemy,psycopg2,Python,Postgresql,Testing,Sqlalchemy,Psycopg2,我正在为一个程序编写一个端到端的回归测试,该程序使用SQLAlchemy over psycopg2以及直接使用psycopg2对数据库进行一组更改。为了测试程序是否正确,我的计划是使用收集最终将执行的数据库查询集的工具运行程序,并将该集与验证的基线进行比较 因此,我正在寻找一种方法,以任何形式的常规、一致的文本格式收集这组更改。如果SQLAlchemy具有某种规范化的、引擎中立的最终SQL语句的前身,那么这将是最好的。如果做不到这一点,SQL语句本身就可以工作,只要它们是一致的 使用SQLAl

我正在为一个程序编写一个端到端的回归测试,该程序使用SQLAlchemy over psycopg2以及直接使用psycopg2对数据库进行一组更改。为了测试程序是否正确,我的计划是使用收集最终将执行的数据库查询集的工具运行程序,并将该集与验证的基线进行比较

因此,我正在寻找一种方法,以任何形式的常规、一致的文本格式收集这组更改。如果SQLAlchemy具有某种规范化的、引擎中立的最终SQL语句的前身,那么这将是最好的。如果做不到这一点,SQL语句本身就可以工作,只要它们是一致的

使用SQLAlchemy和/或psycopg2实现这一点的方法是什么


理想情况下,我希望有一个解决方案,既可以使用SQLAlchemy执行的语句,也可以使用psycopg2直接执行的语句,在某些情况下,我们会直接调用
cursor.execute()

试试这个吗?您可能还对使用SQLAlchemy
引擎感兴趣,它将所有执行的语句分派给给定的语句,在我看来,这似乎是您可能感兴趣的事情。@IljaEverilä是的,我认为这是最好的解决方案,也许再加上
LoggingConnection