Files
ha_explore/backend/app/database.py
2026-02-21 16:55:10 +01:00

36 lines
820 B
Python

from pathlib import Path
from collections.abc import Generator
from sqlmodel import Session, SQLModel, create_engine
from app.config import settings
_db_path = settings.database_url.replace("sqlite:///", "")
Path(_db_path).parent.mkdir(parents=True, exist_ok=True)
_default_engine = create_engine(
settings.database_url,
connect_args={"check_same_thread": False},
echo=False,
)
# Engine mutable pour permettre le remplacement en tests
_engine_holder: dict = {"engine": _default_engine}
def get_engine():
return _engine_holder["engine"]
def set_engine(engine):
_engine_holder["engine"] = engine
def create_db_and_tables():
SQLModel.metadata.create_all(get_engine())
def get_session() -> Generator[Session, None, None]:
with Session(get_engine()) as session:
yield session