Files
BiblioGame/app/api/actions/create_engine.py

18 lines
620 B
Python

from ...db.config.config import get_engine_configuration
from sqlalchemy import create_engine as sqlalchemy_create_engine
from functools import cache
from sqlalchemy.orm import sessionmaker
import logging
logger = logging.getLogger(__name__)
@cache
def create_engine(*, engine_string=None, echo=None):
logger.debug(f"create_engine {engine_string}")
if engine_string is None:
engine_string, echo = get_engine_configuration()
engine = sqlalchemy_create_engine(engine_string, echo=echo=="true", future=True) # TODO
Session = sessionmaker(engine)
session = Session()
return engine, session