From debb37797ba05fe6c91f3cec514a61e19c3fcb62 Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Tue, 5 Nov 2024 19:17:23 +0800 Subject: [PATCH] refact: remove event listener for last scan at --- memos/crud.py | 14 ++++++++++++-- memos/models.py | 21 --------------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/memos/crud.py b/memos/crud.py index 19d3fd3..0b8186c 100644 --- a/memos/crud.py +++ b/memos/crud.py @@ -308,8 +308,7 @@ def update_entity_tags(entity_id: int, tags: List[str], db: Session) -> Entity: # Clear existing tags db.query(EntityTagModel).filter(EntityTagModel.entity_id == entity_id).delete() - db.commit() - + for tag_name in tags: tag = db.query(TagModel).filter(TagModel.name == tag_name).first() if not tag: @@ -323,6 +322,10 @@ def update_entity_tags(entity_id: int, tags: List[str], db: Session) -> Entity: source=MetadataSource.PLUGIN_GENERATED, ) db.add(entity_tag) + + # Update last_scan_at in the same transaction + db_entity.last_scan_at = func.now() + db.commit() db.refresh(db_entity) return Entity(**db_entity.__dict__) @@ -349,6 +352,10 @@ def add_new_tags(entity_id: int, tags: List[str], db: Session) -> Entity: source=MetadataSource.PLUGIN_GENERATED, ) db.add(entity_tag) + + # Update last_scan_at in the same transaction + db_entity.last_scan_at = func.now() + db.commit() db.refresh(db_entity) return Entity(**db_entity.__dict__) @@ -398,6 +405,9 @@ def update_entity_metadata_entries( db.add(entity_metadata) db_entity.metadata_entries.append(entity_metadata) + # Update last_scan_at in the same transaction + db_entity.last_scan_at = func.now() + db.commit() db.refresh(db_entity) return Entity(**db_entity.__dict__) diff --git a/memos/models.py b/memos/models.py index 3a9b951..0c39d27 100644 --- a/memos/models.py +++ b/memos/models.py @@ -339,27 +339,6 @@ def init_default_libraries(session, default_plugins): session.commit() -@event.listens_for(EntityTagModel, "after_insert") -@event.listens_for(EntityTagModel, "after_delete") -def update_entity_last_scan_at_for_tags(mapper, connection, target): - session = Session(bind=connection) - entity = session.query(EntityModel).get(target.entity_id) - if entity: - EntityModel.update_last_scan_at(session, entity) - session.commit() - - -@event.listens_for(EntityMetadataModel, "after_insert") -@event.listens_for(EntityMetadataModel, "after_update") -@event.listens_for(EntityMetadataModel, "after_delete") -def update_entity_last_scan_at_for_metadata(mapper, connection, target): - session = Session(bind=connection) - entity = session.query(EntityModel).get(target.entity_id) - if entity: - EntityModel.update_last_scan_at(session, entity) - session.commit() - - async def update_or_insert_entities_vec(session, target_id, embedding): try: # First, try to update the existing row