我试图让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
装饰器中列出每一个查询。
答案 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