Tabellnivån before_create/after_create-händelser sänds ut (bara inte de med metadatanivå). du måste se till att vad som än händer i ditt env.py-skript i slutändan inbegriper att händelseavlyssnare ställs in.
Koden du har här ser lite misstänkt ut:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
här skulle bara vara en enda Table
instans och det är förmodligen inte vad du skulle se i almbic-skriptet. Den alembiska create_table
kommandot skapar en Table
lokalt och bara kör en skapa på den, så du måste lyssna på alla tabellobjekt globalt:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
om dessa händelser endast är för den här specifika tabellen, så skulle du inte använda några händelser, du skulle bara lägga DDL() för dessa utlösare direkt i ditt migreringsskript, direkt efter där det anropar create_table()
.