From 97983ae5ba24a86aeafa9bf09bb6f803866b51b0 Mon Sep 17 00:00:00 2001 From: neckfire Date: Sat, 15 Aug 2026 15:01:17 +0200 Subject: [PATCH] =?UTF-8?q?Rebranche=20la=20base=20sur=20DATABASE=5FURL=20?= =?UTF-8?q?(PostgreSQL=20partag=C3=A9)=20au=20lieu=20du=20SQLite=20en=20du?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit database.py codait la base en dur en SQLite et ignorait la variable DATABASE_URL fournie par le compose. Le conteneur recréait donc un /app/regwatch.db vide à chaque démarrage (aucun volume), pendant que les 397 documents réels dormaient dans PostgreSQL : GET /documents renvoyait [] et le cron de veille comptait dans PG des documents que les scrapers écrivaient dans le SQLite jetable. - DATABASE_URL est lu depuis l'environnement, le SQLite ne reste qu'en repli. - check_same_thread n'est passé que pour SQLite (psycopg2 le rejette). - psycopg2-binary ajouté : aucun driver PostgreSQL n'était installé. Co-Authored-By: Claude Opus 5 (1M context) --- database/database.py | 7 +++++-- requirements.txt | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/database/database.py b/database/database.py index a59806f..020ad33 100644 --- a/database/database.py +++ b/database/database.py @@ -3,11 +3,14 @@ from sqlalchemy.orm import sessionmaker, declarative_base import os DB_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "regwatch.db") -DATABASE_URL = f"sqlite:///{DB_PATH}" +DATABASE_URL = os.getenv("DATABASE_URL", f"sqlite:///{DB_PATH}") + +# check_same_thread est propre à SQLite : psycopg2 le rejette. +CONNECT_ARGS = {"check_same_thread": False} if DATABASE_URL.startswith("sqlite") else {} engine = create_engine( DATABASE_URL, - connect_args={"check_same_thread": False} + connect_args=CONNECT_ARGS ) SessionLocal = sessionmaker( diff --git a/requirements.txt b/requirements.txt index b8eb833..34e56e3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,4 +8,5 @@ ollama python-jose[cryptography] passlib[argon2] python-multipart -pdfplumber \ No newline at end of file +pdfplumber +psycopg2-binary