SQLAlchemy为每个查询添加注释

时间:2015-07-01 13:16:01

标签: python sqlalchemy

我试图让SQLAlchemy为我提交的每个查询添加评论。

我从文档中知道我可以做这样的事情:

from sqlalchemy.sql.expression import Insert

@compiles(Insert)
def prefix_inserts(insert, compiler, **kw):
    return compiler.visit_insert(insert.prefix_with("/* comment */"), **kw)

但我无法弄清楚如何为每一个查询做到这一点,无论什么类型,都不必在compiles装饰器中列出每一个查询。

1 个答案:

答案 0 :(得分:4)

我会使用事件。有一个例子in SQLAlchemy documentation

from sqlalchemy.engine import Engine
from sqlalchemy import event

@event.listens_for(Engine, "before_cursor_execute", retval=True)
def comment_sql_calls(conn, cursor, statement, parameters,
                                    context, executemany):
    statement = statement + " -- some comment"
    return statement, parameters