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

@@ -49,7 +49,11 @@ class TaskPropsBase(SQLModelBase):
class TaskProps(TaskPropsBase, TableBaseMixin):
"""任务属性模型与Task一对一关联"""
task_id: int = Field(foreign_key="task.id", primary_key=True)
task_id: int = Field(
foreign_key="task.id",
primary_key=True,
ondelete="CASCADE"
)
"""关联的任务ID"""
# 反向关系
@@ -79,13 +83,17 @@ class Task(SQLModelBase, TableBaseMixin):
"""错误信息"""
# 外键
user_id: UUID = Field(foreign_key="user.id", index=True)
user_id: UUID = Field(
foreign_key="user.id",
index=True,
ondelete="CASCADE"
)
"""所属用户UUID"""
# 关系
props: TaskProps | None = Relationship(
back_populates="task",
sa_relationship_kwargs={"uselist": False},
sa_relationship_kwargs={"uselist": False, "cascade": "all, delete-orphan"},
)
"""任务属性"""