fix: 数据库会话事务安全兜底
get_db() 依赖注入增加 try/except/rollback/finally: - 请求处理中发生异常时自动 rollback - 无论成功或异常,finally 中确保 close 释放连接 - 防止异常导致连接泄漏或脏事务残留
This commit is contained in:
@ -19,6 +19,12 @@ AsyncSessionLocal = async_sessionmaker(
|
|||||||
|
|
||||||
|
|
||||||
async def get_db() -> AsyncSession:
|
async def get_db() -> AsyncSession:
|
||||||
"""FastAPI 依赖注入:每次请求获取一个数据库会话"""
|
"""FastAPI 依赖注入:每次请求获取一个数据库会话(带事务安全兜底)"""
|
||||||
async with AsyncSessionLocal() as session:
|
async with AsyncSessionLocal() as session:
|
||||||
yield session
|
try:
|
||||||
|
yield session
|
||||||
|
except Exception:
|
||||||
|
await session.rollback()
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
await session.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user