From d59f732a0e48d708bb3e51a5413018ae646c798d Mon Sep 17 00:00:00 2001 From: duxingchen Date: Wed, 12 Aug 2026 12:04:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E4=BA=8B=E5=8A=A1=E5=AE=89=E5=85=A8=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_db() 依赖注入增加 try/except/rollback/finally: - 请求处理中发生异常时自动 rollback - 无论成功或异常,finally 中确保 close 释放连接 - 防止异常导致连接泄漏或脏事务残留 --- backend/app/core/database.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/app/core/database.py b/backend/app/core/database.py index 271c54b..130594d 100644 --- a/backend/app/core/database.py +++ b/backend/app/core/database.py @@ -19,6 +19,12 @@ AsyncSessionLocal = async_sessionmaker( async def get_db() -> AsyncSession: - """FastAPI 依赖注入:每次请求获取一个数据库会话""" + """FastAPI 依赖注入:每次请求获取一个数据库会话(带事务安全兜底)""" async with AsyncSessionLocal() as session: - yield session + try: + yield session + except Exception: + await session.rollback() + raise + finally: + await session.close()