Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from collections.abc import Generator | |
| from pathlib import Path | |
| from sqlalchemy import create_engine | |
| from sqlalchemy.orm import Session, sessionmaker | |
| from core.config import get_settings | |
| from core.models import Base | |
| settings = get_settings() | |
| sqlite_path = Path(settings.sqlite_db_path) | |
| sqlite_path.parent.mkdir(parents=True, exist_ok=True) | |
| engine = create_engine( | |
| settings.sqlite_url, | |
| connect_args={"check_same_thread": False}, | |
| ) | |
| SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) | |
| def init_db() -> None: | |
| Base.metadata.create_all(bind=engine) | |
| def get_db() -> Generator[Session, None, None]: | |
| db = SessionLocal() | |
| try: | |
| yield db | |
| finally: | |
| db.close() | |