Build & Deploy / build (push) Successful in 23s
- 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>
26 lines
764 B
Python
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()
|