0

SQLAlchemy 的文档提供了关于如何在使用如下代码创建特定表之前执行 DDL 语句的非常清晰的指示

DDL(statement).execute_at('before-create', table)

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

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

(我担心这里的“创建前”可能意味着每次创建表时都会执行该语句。)

4

1 回答 1

1

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

但是,如果您至少使用 0.7,则应该使用新的事件格式。请参阅http://docs.sqlalchemy.org/en/latest/core/events.html#sqlalchemy.events.DDLEvents

于 2012-12-04T01:10:53.253 回答