import os from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from dotenv import load_dotenv from os.path import join, dirname ## ENV LOAD dotenv_path = dirname(__file__).replace("./sql",'env/database.env') load_dotenv(dotenv_path) SQLALCHEMY_DATABASE_URL = os.environ.get("SQLALCHEMY_DATABASE_URL") engine = create_engine(SQLALCHEMY_DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() # Dependency def get_db_session(): db = SessionLocal() try: yield db except: db.rollback() raise finally: db.close() ### define database session, deal with database setup and connection