18 lines
620 B
Python
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 |