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

在创建任何表之前,如何在SQLAlchemy中触发DDL语句?,sqlalchemy,Sqlalchemy,SQLAlchemy的文档提供了非常清晰的说明,说明了如何在使用类似以下代码创建特定表之前执行DDL语句 DDL(statement).execute_at('before-create', table) 但是,如果我想确保在创建多个表之前执行该语句,该怎么办?在最简单的情况下,假设我希望确保在创建任何表之前执行该语句。我可以让它们在创建模型基类的元数据之前执行吗 DDL(statement).execute_at('before-create', Base.metadata) (我担心这里

SQLAlchemy的文档提供了非常清晰的说明,说明了如何在使用类似以下代码创建特定表之前执行DDL语句

DDL(statement).execute_at('before-create', table)
但是,如果我想确保在创建多个表之前执行该语句,该怎么办?在最简单的情况下,假设我希望确保在创建任何表之前执行该语句。我可以让它们在创建模型基类的元数据之前执行吗

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

简单回答“是”,就像您在那里指示的那样。该事件适用于表和元数据

但是,如果您至少使用0.7,则应该使用新的事件格式。看