如何在创建任何表之前在SQLAlchemy中触发DDL语句?

时间:2012-12-02 01:50:20

标签: sqlalchemy

SQLAlchemy的文档提供了关于如何在使用

之类的代码创建特定表之前执行DDL语句的非常明确的指示
DDL(statement).execute_at('before-create', table)

但是,如果我想确保在创建多个表之前执行该语句,该怎么办?在最简单的情况下,假设我想确保在创建任何表之前执行该语句。我可以让它们在创建前为模型Base类的元数据执行,就像这样吗?

DDL(statement).execute_at('before-create', Base.metadata)

(我担心这里的'before-create'可能意味着每次创建表时都会执行该语句。)

1 个答案:

答案 0 :(得分:1)

简单的回答,“是的”,就像你在那里指出的那样。该事件适用于Table和MetaData。

但是,如果您的电话号码至少为0.7,则应使用新的事件格式。见http://docs.sqlalchemy.org/en/latest/core/events.html#sqlalchemy.events.DDLEvents