yeswanth0212/token_system
1
1from sqlalchemy import create_engine2from sqlalchemy.orm import sessionmaker, declarative_base3import os4from dotenv import load_dotenv5 6load_dotenv()7 8# We look for DATABASE_URL from Supabase (starts with postgresql://)9SQLALCHEMY_DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./clinic.db")10 11# If using sqlite, check_same_thread is needed. If postgres, it's not.12connect_args = {}13if SQLALCHEMY_DATABASE_URL.startswith("sqlite"):14 connect_args["check_same_thread"] = False15# Supabase sometimes requires sslmode16elif SQLALCHEMY_DATABASE_URL.startswith("postgres://"):17 SQLALCHEMY_DATABASE_URL = SQLALCHEMY_DATABASE_URL.replace("postgres://", "postgresql://", 1)18 19engine = create_engine(20 SQLALCHEMY_DATABASE_URL, connect_args=connect_args21)22SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)23 24Base = declarative_base()25 26def get_db():27 db = SessionLocal()28 try:29 yield db30 finally:31 db.close()32 