Jsou vysílány události na úrovni tabulky before_create/after_create (jen ne na úrovni metadat). musíte se ujistit, že cokoli se stane ve vašem skriptu env.py, nakonec zahrnuje nastavení těchto posluchačů událostí.
Kód, který zde máte, vypadá trochu podezřele:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__ zde by byla pouze jedna Table instance a to pravděpodobně není to, co byste viděli v alembickém skriptu. Alembic create_table vytvoří Table lokálně a pouze na něm spustíte create, takže budete muset naslouchat všem objektům tabulky globálně:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
pokud jsou tyto události pouze pro tuto jednu konkrétní tabulku, pak byste nepoužili žádné události, pouze byste vložili DDL() pro tyto spouštěče přímo do vašeho migračního skriptu, hned za to, kde volá create_table() .