diff --git a/backend/src/handler/db_handler.py b/backend/src/handler/db_handler.py index 023a4d758..8468ba60c 100644 --- a/backend/src/handler/db_handler.py +++ b/backend/src/handler/db_handler.py @@ -1,3 +1,5 @@ +import functools + from fastapi import HTTPException from sqlalchemy import select from sqlalchemy.exc import ProgrammingError @@ -13,6 +15,13 @@ class DBHandler: BaseModel.metadata.create_all(engine) self.session = Session() + + def retry(func) -> tuple: + @functools.wraps(func) + def wrapper(*args): + return func(*args) + return wrapper + def add_platform(self, **kargs) -> None: with Session.begin() as session: diff --git a/backend/src/models/base.py b/backend/src/models/base.py index dd57cff96..a20771f83 100644 --- a/backend/src/models/base.py +++ b/backend/src/models/base.py @@ -7,5 +7,5 @@ from config.config import DB_HOST, DB_PORT, DB_USER, DB_PASSWD, DB_NAME BaseModel = declarative_base() -engine = create_engine(f"mariadb+mariadbconnector://{DB_USER}:{DB_PASSWD}@{DB_HOST}:{DB_PORT}/{DB_NAME}") +engine = create_engine(f"mariadb+mariadbconnector://{DB_USER}:{DB_PASSWD}@{DB_HOST}:{DB_PORT}/{DB_NAME}", pool_pre_ping=True) Session = sessionmaker(bind=engine, expire_on_commit=False) \ No newline at end of file