Source code for db.database

"""Create the connection to the Database"""
from pathlib import Path
from typing import Generator

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from tools.config import settings

if settings.SQL_LITE:
    Path("./data").mkdir(exist_ok=True)
    SQLALCHEMY_DATABASE_URL = "sqlite:///./data/essensfindung.db"
    # Use connect_args parameter only with sqlite
    engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
else:
    SQLALCHEMY_DATABASE_URL = f"postgresql://{settings.POSTGRES_USER}:{settings.POSTGRES_PASSWORD}@{settings.POSTGRES_SERVER}:{settings.POSTGRES_PORT}/{settings.POSTGRES_DATABASE}"
    engine = create_engine(SQLALCHEMY_DATABASE_URL)


SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)


[docs]def get_db() -> Generator: """ Get a Session to the Database like a single transaction Return: Generator: Session to the Database""" try: database = SessionLocal() yield database finally: database.close()