De gebeurtenissen op tabelniveau before_create/after_create worden uitgezonden (alleen niet die op metadataniveau). je moet ervoor zorgen dat wat er ook gebeurt in je env.py-script, uiteindelijk gaat om het instellen van die gebeurtenislisteners.
De code die je hier hebt ziet er een beetje verdacht uit:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
hier zou slechts een enkele Table
zijn bijvoorbeeld en dat is waarschijnlijk niet wat je zou zien in het alambiekschrift. De alambiek create_table
commando maakt een Table
lokaal en voert er gewoon een creatie op uit, dus je moet naar alle tabelobjecten globaal luisteren:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
als deze gebeurtenissen echter alleen voor deze ene specifieke tabel zijn, dan zou je geen gebeurtenissen gebruiken, je zou gewoon de DDL() voor die triggers direct in je migratiescript plaatsen, direct na waar het create_table()
.