Les événements before_create/after_create au niveau de la table sont émis (mais pas ceux au niveau des métadonnées). vous devez vous assurer que tout ce qui se passe dans votre script env.py implique finalement la configuration de ces écouteurs d'événement.
Le code que vous avez ici semble un peu suspect :
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
ici serait juste un seul Table
exemple et ce n'est probablement pas ce que vous verriez dans le script d'alambic. L'alambic create_table
la commande crée une Table
localement et exécute simplement une création dessus, vous devez donc écouter tous les objets Table globalement :
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
si ces événements ne concernent que cette table spécifique, vous n'utiliseriez aucun événement, vous placeriez simplement le DDL() pour ces déclencheurs directement dans votre script de migration, juste après qu'il appelle create_table()
.