"""Database configuration for SAMAAN.""" from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from utils.runtime import get_database_url DATABASE_URL = get_database_url() engine_kwargs = {"echo": False, "pool_pre_ping": True} connect_args = {} if DATABASE_URL.startswith("sqlite"): connect_args["check_same_thread"] = False engine_kwargs["connect_args"] = connect_args else: engine_kwargs["pool_recycle"] = 300 engine = create_engine(DATABASE_URL, **engine_kwargs) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() def get_db(): db = SessionLocal() try: yield db finally: db.close()