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:
|
||||
"""FastAPI 依赖注入:每次请求获取一个数据库会话"""
|
||||
"""FastAPI 依赖注入:每次请求获取一个数据库会话(带事务安全兜底)"""
|
||||
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