我可以在SQLAlchemy中使用Psycopog2的LoggingConnection吗?

时间:2014-08-11 02:29:54

标签: python postgresql sqlalchemy psycopg2

我使用SQLAlchemy 0.9.7而不是Postgres,并以psyopg2作为驱动程序。

我有一个没有正确关闭的迷路事务,为了调试它,我想记录发送到数据库的所有操作。

psycopg2.extras.LoggingConnection似乎提供了我需要的功能,但我无法看到如何说服SQLAlchemy use this feature of the dialect

这可以通过SQLAlchemy吗?

2 个答案:

答案 0 :(得分:1)

您可以将自定义连接工厂传递给SQLAlchemy引擎:

$('img').lightBox();

或者,您可以实现自定义游标类(例如,请参阅 def _connection_factory(*args, **kwargs): connection = psycopg2.extras.LoggingConnection(*args, **kwargs) connection.initialize(open('sql.log', 'a')) return connection db_engine = create_engine(conn_string, connect_args={ "connection_factory": _connection_factory }) ),并以类似的方式传递它:

psycopg2.extras.LoggingCursor

答案 1 :(得分:0)

它不是我自己问题的直接答案,但是一种解决方法:turning on query logging at the SQLAlchemy layer可以获得类似的功能,而不是Psycopg2层: