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()