""" Configuration de la base de données SQLAlchemy """ from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from pathlib import Path # Base pour les modèles SQLAlchemy Base = declarative_base() # Engine et session engine = None SessionLocal = None def init_database(db_path: str = "./data/db.sqlite"): """Initialise la connexion à la base de données""" global engine, SessionLocal # Créer le dossier data si nécessaire Path(db_path).parent.mkdir(parents=True, exist_ok=True) # Créer l'engine SQLite database_url = f"sqlite:///{db_path}" engine = create_engine( database_url, connect_args={"check_same_thread": False}, echo=False ) # Créer la session factory SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # Créer les tables Base.metadata.create_all(bind=engine) return engine def get_db(): """Dependency pour obtenir une session DB""" db = SessionLocal() try: yield db finally: db.close()