From 439adfa955fb7b45a0851fa5d92f59f71d809edc Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:24:23 +0800 Subject: [PATCH] feat: support cascade delete entity --- memos/models.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/memos/models.py b/memos/models.py index 94b3940..7ce518f 100644 --- a/memos/models.py +++ b/memos/models.py @@ -73,10 +73,16 @@ class EntityModel(Base): "FolderModel", back_populates="entities" ) metadata_entries: Mapped[List["EntityMetadataModel"]] = relationship( - "EntityMetadataModel", lazy="joined" + "EntityMetadataModel", + lazy="joined", + cascade="all, delete-orphan" ) tags: Mapped[List["TagModel"]] = relationship( - "TagModel", secondary="entity_tags", lazy="joined" + "TagModel", + secondary="entity_tags", + lazy="joined", + cascade="all, delete", + overlaps="entities" ) # 添加索引 @@ -100,7 +106,7 @@ class TagModel(Base): class EntityTagModel(Base): __tablename__ = "entity_tags" entity_id: Mapped[int] = mapped_column( - Integer, ForeignKey("entities.id"), nullable=False + Integer, ForeignKey("entities.id", ondelete="CASCADE"), nullable=False ) tag_id: Mapped[int] = mapped_column(Integer, ForeignKey("tags.id"), nullable=False) source: Mapped[MetadataSource] = mapped_column(Enum(MetadataSource), nullable=False)