Vengono emessi gli eventi a livello di tabella before_create/after_create (solo non quelli a livello di metadati). devi assicurarti che qualunque cosa accada nel tuo script env.py alla fine comporti la configurazione di quei listener di eventi.
Il codice che hai qui sembra un po' sospetto:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
qui ci sarebbe solo una singola Table
istanza e probabilmente non è quello che vedresti nello script dell'alambicco. L'alambicco create_table
comando crea una Table
localmente ed esegue solo una creazione su di esso, quindi dovresti ascoltare tutti gli oggetti Table a livello globale:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
se questi eventi sono solo per questa tabella specifica, tuttavia, non utilizzeresti alcun evento, inseriresti semplicemente DDL() per quei trigger direttamente nello script di migrazione, subito dopo dove chiama create_table()
.