def after_commit(cls, session): for obj in session._changes['update']: if isinstance(obj, SearchableMixin): add_to_index(obj.__tablename__, obj) session._changes = None
def reindex(cls): '''刷新指定数据模型中的所有数据的索引''' for obj in cls.query: add_to_index(cls.__tablename__, obj)
def receive_after_insert(cls, mapper, connection, target): '''监听 SQLAlchemy 'after_insert' 事件 请参考: https://docs.sqlalchemy.org/en/13/orm/events.html#mapper-events''' add_to_index(target.__tablename__, target)