在我的应用程序中,每当某个Postgres架构中的视图被删除时,我想调用一个特定的函数。我熟悉SQLAlchemy的event.listener
功能,但我主要看到它用于监听表插入,更新和删除。我查看了文档here,但似乎没有任何与删除视图或一般视图相关的内容(是的,我知道我尝试做的事情有点独特)。有没有办法让我听一下从SQLAlchemy执行的DROP VIEW specific_schema_name.my_table
查询,如果匹配specific_schema_name
,我想抓住它?
据我所知,SQLAlchemy对drop语句或视图没有太多内置支持(如果有的话)。如何创造这样的倾听者?
答案 0 :(得分:1)
你最有可能只是听取执行,并查看你需要的字符串值:
from sqlalchemy import event
import re
@event.listens_for(my_engine, "after_cursor_execute")
def my_thing(conn, cursor, statement, parameters, context, executemany):
if re.match(r'DROP VIEW my_table', statement):
call_my_function()