[database] fix invalid transaction being left open

This commit is contained in:
2024-11-25 20:13:51 +07:00
parent 58a5177a30
commit 476a911df9
2 changed files with 23 additions and 21 deletions

View File

@ -1,12 +1,11 @@
import logging
import os
import secrets
import ssl
import string
import warnings
from hashlib import sha256
from logging.handlers import TimedRotatingFileHandler
from typing import Any, ClassVar, Optional
from typing import ClassVar, Optional
import alembic.config
import bcrypt
@ -17,6 +16,7 @@ from sqlalchemy.ext.asyncio import (
AsyncSession,
create_async_engine,
)
from sqlalchemy.orm import sessionmaker
from core.config import CoreConfig
from core.data.schema import ArcadeData, BaseData, CardData, UserData, metadata
@ -25,7 +25,7 @@ from core.utils import MISSING, Utils
class Data:
engine: ClassVar[AsyncEngine] = MISSING
session: ClassVar[AsyncSession] = MISSING
session: ClassVar[sessionmaker[AsyncSession]] = MISSING
user: ClassVar[UserData] = MISSING
arcade: ClassVar[ArcadeData] = MISSING
card: ClassVar[CardData] = MISSING
@ -53,7 +53,7 @@ class Data:
self.__engine = Data.engine
if Data.session is MISSING:
Data.session = AsyncSession(Data.engine, expire_on_commit=False)
Data.session = sessionmaker(Data.engine, expire_on_commit=False, class_=AsyncSession)
if Data.user is MISSING:
Data.user = UserData(self.config, self.session)