import logging from pathlib import Path from sqlalchemy import create_engine from sqlalchemy.exc import OperationalError from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker logger = logging.getLogger(__name__) SQLALCHEMY_DATABASE_URL = "sqlite:///./data/timmy_calm.db" # Ensure the data directory exists before creating the engine Path("./data").mkdir(parents=True, exist_ok=True) engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() def create_tables(): """Create all tables idempotently (safe under pytest-xdist concurrency).""" try: Base.metadata.create_all(bind=engine) except OperationalError as exc: logger.debug("Table creation skipped (already exists): %s", exc) def get_db(): db = SessionLocal() try: yield db finally: db.close()