Files
regwatch-backend/database/database.py
T
neckfireandClaude Opus 4.8 3d007c7013
Build & Deploy / build (push) Successful in 23s
RegWatch backend : FastAPI + Postgres partagé + Docker/CI homelab
- SECRET_KEY et DATABASE_URL externalisés (Vault -> env), plus de secret en dur
- SQLite -> postgres-shared (psycopg2), schéma créé au boot (entrypoint.sh)
- Dockerfile + docker-compose (Watchtower) + .gitea/workflows/build.yml

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 18:43:17 +02:00

26 lines
764 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
import os
# En prod (homelab) : DATABASE_URL pointe sur postgres-shared (injecté par l'env / Vault).
# En dev local : repli sur un SQLite à la racine du backend.
DB_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "regwatch.db")
DATABASE_URL = os.getenv("DATABASE_URL", f"sqlite:///{DB_PATH}")
# check_same_thread n'a de sens que pour SQLite.
connect_args = {"check_same_thread": False} if DATABASE_URL.startswith("sqlite") else {}
engine = create_engine(
DATABASE_URL,
connect_args=connect_args,
pool_pre_ping=True,
)
SessionLocal = sessionmaker(
autocommit=False,
autoflush=False,
bind=engine
)
Base = declarative_base()