Os eventos de nível de tabela before_create/after_create são emitidos (mas não os de nível de metadados). você precisa ter certeza de que tudo o que acontece em seu script env.py envolve a configuração desses ouvintes de eventos.
O código que você tem aqui parece um pouco suspeito:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
aqui seria apenas uma única Table
instância e isso provavelmente não é o que você veria no script do alambique. O alambique create_table
comando cria uma Table
localmente e apenas executa um create nele, então você precisa ouvir todos os objetos Table globalmente:from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
se esses eventos forem apenas para esta tabela específica, você não usaria nenhum evento, bastaria colocar o DDL() para esses gatilhos diretamente no seu script de migração, logo após onde ele chama
create_table()
.