from typing import Generator from sqlalchemy import URL, create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import Session, sessionmaker from .config import ( POSTGRES_DB, POSTGRES_HOST, POSTGRES_PASSWORD, POSTGRES_PORT, POSTGRES_USER, ) engine = create_engine( URL.create( "postgresql+psycopg", username=POSTGRES_USER, password=POSTGRES_PASSWORD, host=POSTGRES_HOST, port=POSTGRES_PORT, database=POSTGRES_DB, ), client_encoding="utf8", ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() # Dependency def get_db() -> Generator[Session, None, None]: db = SessionLocal() try: yield db finally: db.close()