import os from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from dotenv import load_dotenv # Charger les variables d'environnement depuis le fichier .env load_dotenv() DATABASE_URL = os.getenv("DATABASE_URL") if not DATABASE_URL: raise ValueError("DATABASE_URL non défini dans les variables d'environnement.") # Configuration de l'engine de la base de données # Le paramètre connect_args={"check_same_thread": False} est nécessaire pour SQLite, # mais peut être omis pour PostgreSQL en production. Gardons-le pour la flexibilité initiale. engine = create_engine( DATABASE_URL ) # Configuration de la session de la base de données SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # Base de déclaration pour les modèles SQLAlchemy Base = declarative_base() # Fonction d'utilité pour obtenir une session de base de données (dépendance FastAPI) def get_db(): db = SessionLocal() try: yield db finally: db.close()