我使用 sqlalchemy 1.0。我的项目有多个模型,其中一些具有事件侦听器,例如
event.listen(Model, 'after_update', Model._after_update).
在单元测试的情况下,我需要禁用模型/会话/等上的所有事件侦听器。
特定测试完成后,我需要启用所有侦听器。
有没有办法实现这一目标?
我有疑问:
q = Session.query(func.array_agg(Order.col))
Run Code Online (Sandbox Code Playgroud)
编译后的查询将是:
SELECT array_agg(order.col) FROM orders
Run Code Online (Sandbox Code Playgroud)
我想动态替换现有的列。替换查询后必须是:
SELECT group_concat(orders.col) FROM orders
Run Code Online (Sandbox Code Playgroud)
我必须使用会话和模型。我不必使用 SQLAlchemy 核心。我不必使用子查询。当然,还可以有其他一些列,但我只需要替换一列。我试图替换column_descriptions属性中的对象,我尝试使用q.selectable.replace(或类似的东西,抱歉,但我不记得正确的名称),但我没有得到正确的结果。