from typing import Generator import os from sqlalchemy import create_engine, URL from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, Session from .config import POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB 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()