"""SQLModel database setup.""" from __future__ import annotations import os from collections.abc import Generator from sqlmodel import Session, SQLModel, create_engine from config import settings os.makedirs(settings.DATA_DIR, exist_ok=True) _DB_PATH = os.path.join(settings.DATA_DIR, "stackpilot.db") _DB_URL = f"sqlite:///{_DB_PATH}" engine = create_engine( _DB_URL, echo=False, connect_args={"check_same_thread": False}, ) def init_db() -> None: # Import models so they are registered on SQLModel.metadata. import models # noqa: F401 SQLModel.metadata.create_all(engine) def get_session() -> Generator[Session, None, None]: with Session(engine) as session: yield session