diff --git a/app/db/__init__.py b/app/db/__init__.py index e69de29..63b83d5 100644 --- a/app/db/__init__.py +++ b/app/db/__init__.py @@ -0,0 +1,21 @@ +from collections.abc import Iterator + +from sqlalchemy import create_engine +from sqlalchemy.orm import Session, sessionmaker + +from app.config import settings + +connect_args = ( + {"check_same_thread": False} if settings.database_url.startswith("sqlite") else {} +) + +engine = create_engine(settings.database_url, connect_args=connect_args) +SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False) + + +def get_db() -> Iterator[Session]: + db = SessionLocal() + try: + yield db + finally: + db.close()