import os from dotenv import load_dotenv from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, declarative_base load_dotenv() DB_URL = os.getenv("DATABASE_URL") engine = create_engine( DB_URL, pool_pre_ping=True, pool_recycle=300, pool_size=5, max_overflow=2, connect_args={ "connect_timeout": 10, "keepalives": 1, "keepalives_idle": 30, "keepalives_interval": 5, "keepalives_count": 5, }, ) SessionLocal = sessionmaker( autocommit=False, autoflush=False, bind=engine, ) Base = declarative_base() def get_db(): db = SessionLocal() try: yield db finally: db.close()