ay/backend/core/database.py
2025-06-24 18:17:53 +02:00

34 lines
No EOL
1 KiB
Python

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()