From 5b759044aabe41ddacab176802b5e306c440c501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Fri, 8 May 2026 03:32:50 +0900 Subject: [PATCH] Add database session setup --- app/db.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/db.py diff --git a/app/db.py b/app/db.py new file mode 100644 index 0000000..d951c76 --- /dev/null +++ b/app/db.py @@ -0,0 +1,27 @@ +from collections.abc import Generator +from sqlalchemy import create_engine +from sqlalchemy.orm import DeclarativeBase, Session, sessionmaker + +from app.core import get_settings + +settings = get_settings() +engine = create_engine(settings.database_url, pool_pre_ping=True) +SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False) + + +class Base(DeclarativeBase): + pass + + +def get_db() -> Generator[Session, None, None]: + db = SessionLocal() + try: + yield db + finally: + db.close() + + +def init_db() -> None: + from app import models # noqa: F401 + + Base.metadata.create_all(bind=engine)