テーブルレベルのbefore_create/after_createイベントが発行されます(メタデータレベルのイベントだけではありません)。 env.pyスクリプトで何が起こっても、最終的にはそれらのイベントリスナーが設定されていることを確認する必要があります。
ここにあるコードは少し疑わしいようです:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
ここにあるのは単一のTable
インスタンスとそれはおそらくあなたがアレムビックスクリプトで見るものではありません。アレムビックなcreate_table
コマンドはTable
を作成します ローカルで作成を実行するだけなので、すべてのTableオブジェクトをグローバルにリッスンする必要があります:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
ただし、これらのイベントがこの1つの特定のテーブルのみを対象としている場合は、イベントを使用せず、create_table()
。