Tabelniveauet before_create/after_create-hændelser udsendes (bare ikke metadata-niveauet). du skal sikre dig, at hvad der end sker i dit env.py-script i sidste ende involverer de begivenhedslyttere, der konfigureres.
Den kode du har her ser lidt suspekt ud:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
her ville bare være en enkelt Table
eksempel, og det er sandsynligvis ikke, hvad du ville se i almbic-skriftet. Den alembiske create_table
kommandoen opretter en Table
lokalt og kører bare en oprettelse på den, så du bliver nødt til at lytte til alle tabelobjekter globalt:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
hvis disse hændelser dog kun er for denne ene specifikke tabel, så ville du ikke bruge nogen hændelser, du ville bare sætte DDL() for disse triggere direkte i dit migreringsscript, lige efter hvor det kalder create_table()
.