Files
MoviePilot/app/db/uow.py
T

37 lines
1.1 KiB
Python

"""SQLAlchemy 请求级事务适配器。"""
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import Session
class SqlAlchemyUnitOfWork:
"""把同步 Session 的提交与回滚能力适配为应用层事务端口。"""
def __init__(self, session: Session) -> None:
"""保存由请求依赖提供的同步数据库会话。"""
self._session = session
def commit(self) -> None:
"""提交请求级事务。"""
self._session.commit()
def rollback(self) -> None:
"""回滚请求级事务。"""
self._session.rollback()
class SqlAlchemyAsyncUnitOfWork:
"""把 AsyncSession 的提交与回滚能力适配为应用层事务端口。"""
def __init__(self, session: AsyncSession) -> None:
"""保存由请求依赖提供的数据库会话。"""
self._session = session
async def commit(self) -> None:
"""提交请求级事务。"""
await self._session.commit()
async def rollback(self) -> None:
"""回滚请求级事务。"""
await self._session.rollback()