SQLAlchemy 为每个查询添加注释

rep*_*lay 2 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)
Run Code Online (Sandbox Code Playgroud)

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

mig*_*var 7

我会使用事件。SQLAlchemy 文档中有一个示例:

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
Run Code Online (Sandbox Code Playgroud)