我使用SQLAlchemy 0.9.7而不是Postgres,并以psyopg2作为驱动程序。
我有一个没有正确关闭的迷路事务,为了调试它,我想记录发送到数据库的所有操作。
psycopg2.extras.LoggingConnection
似乎提供了我需要的功能,但我无法看到如何说服SQLAlchemy use this feature of the dialect。
这可以通过SQLAlchemy吗?
答案 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层: