From b890cd3ed547be29c015dce8e71072f3ba23a3f9 Mon Sep 17 00:00:00 2001 From: Pine Date: Sun, 13 Sep 2026 12:57:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(compute):=20=E4=BF=AE=E5=A4=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=9B=BE=E6=A0=87/=E7=B3=BB=E5=88=97=E6=97=A0?= =?UTF-8?q?=E6=95=88=E2=80=94=E2=80=94AsyncSession.delete=20=E6=BC=8F=20aw?= =?UTF-8?q?ait?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:SQLAlchemy 2.0 AsyncSession.delete() 返回 coroutine,必须 await; 漏 await 导致 DELETE SQL 从未执行,commit 提交空事务仍返回 200, DB 记录原封不动、列表重载后不变(RuntimeWarning 提示但无异常)。 已用内存 SQLite 实测:await 后删除成功(数量归 0)。 --- app/api/routers/rbac_compute_assets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/routers/rbac_compute_assets.py b/app/api/routers/rbac_compute_assets.py index 363364b..b3f276d 100644 --- a/app/api/routers/rbac_compute_assets.py +++ b/app/api/routers/rbac_compute_assets.py @@ -254,7 +254,7 @@ async def delete_series( if not s: raise HTTPException(status_code=404, detail="系列不存在") name = s.name - db.session.delete(s) + await db.session.delete(s) await db.session.commit() await write_audit(db, action="compute_series_delete", resource="compute_series", resource_id=series_id, detail=f"删除系列 {name}", user=user, request=request) @@ -438,7 +438,7 @@ async def delete_icon( if not i: raise HTTPException(status_code=404, detail="图标不存在") name = i.name - db.session.delete(i) + await db.session.delete(i) await db.session.commit() await write_audit(db, action="compute_icon_delete", resource="compute_icon", resource_id=icon_id, detail=f"删除图标 {name}", user=user, request=request)