Se emiten los eventos de nivel de tabla before_create/after_create (pero no los de nivel de metadatos). debe asegurarse de que lo que suceda en su secuencia de comandos env.py involucre en última instancia la configuración de esos detectores de eventos.
El código que tienes aquí parece un poco sospechoso:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
aquí sería solo una sola Table
ejemplo y eso probablemente no sea lo que verías en el guión del alambique. El alambique create_table
El comando crea una Table
localmente y solo ejecuta una creación en él, por lo que deberá escuchar todos los objetos de la tabla globalmente:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
Sin embargo, si estos eventos son solo para esta tabla específica, entonces no usaría ningún evento, simplemente colocaría el DDL() para esos disparadores directamente en su secuencia de comandos de migración, justo después de donde llama a create_table()
.