from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import declarative_base from dotenv import load_dotenv import os load_dotenv() DATABASE_URL = ( f"mysql+pymysql://" f"{os.getenv('DB_USER')}:" f"{os.getenv('DB_PASSWORD')}@" f"{os.getenv('DB_HOST')}:" f"{os.getenv('DB_PORT')}/" f"{os.getenv('DB_NAME')}" ) engine = create_engine( DATABASE_URL, pool_pre_ping=True ) SessionLocal = sessionmaker( autocommit=False, autoflush=False, bind=engine ) Base = declarative_base() def get_db(): db = SessionLocal() try: yield db finally: db.close()