feat: 为多个模型的外键字段添加级联删除和其他约束

This commit is contained in:
2025-12-23 11:00:09 +08:00
parent 1a78c76d02
commit 96bf447426
15 changed files with 206 additions and 47 deletions

View File

@@ -79,7 +79,11 @@ from .policy import GroupPolicyLink
class GroupOptions(GroupOptionsBase, TableBaseMixin):
"""用户组选项模型"""
group_id: UUID = Field(foreign_key="group.id", unique=True)
group_id: UUID = Field(
foreign_key="group.id",
unique=True,
ondelete="CASCADE"
)
"""关联的用户组UUID"""
archive_download: bool = False
@@ -125,7 +129,7 @@ class Group(GroupBase, UUIDTableBaseMixin):
# 一对一关系:用户组选项
options: GroupOptions | None = Relationship(
back_populates="group",
sa_relationship_kwargs={"uselist": False}
sa_relationship_kwargs={"uselist": False, "cascade": "all, delete-orphan"}
)
# 多对多关系:用户组可以关联多个存储策略