Fix: Chargement automatique SQLite/PostgreSQL

CORRECTIF URGENT: L'application chargeait toujours SQLite même avec
PostgreSQL configuré, causant une perte apparente de toutes les données.

Ajout de database-loader.js qui détecte automatiquement:
- DB_TYPE=postgres → PostgreSQL
- DATABASE_URL=postgresql:// → PostgreSQL
- Sinon → SQLite

Tous les routes et services mis à jour pour utiliser database-loader
au lieu de charger directement database.js.

Les données ne sont PAS perdues, elles sont dans PostgreSQL.
L'application se reconnectera correctement après redémarrage.

Fichiers modifiés:
- config/database-loader.js (nouveau)
- server.js
- routes/*.js (11 fichiers)
- services/*.js (2 fichiers)
This commit is contained in:
Claude committed 2025-11-14 09:50:21 +00:00
1 parent 9915f7d010
commit 55a1809e71
13 files changed
+34 -12

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
// Chargeur automatique de base de données (SQLite ou PostgreSQL)
const logger = require('./logger');
// Détecter le type de base de données
const DB_TYPE = process.env.DB_TYPE || 'sqlite';
const DATABASE_URL = process.env.DATABASE_URL;
logger.info(`Configuration de base de données: ${DB_TYPE}`);
// Charger le module approprié
let databaseModule;
if (DB_TYPE === 'postgres' || DATABASE_URL?.startsWith('postgresql://')) {
logger.info('Chargement de la configuration PostgreSQL');
databaseModule = require('./database-postgres');
} else {
logger.info('Chargement de la configuration SQLite');
databaseModule = require('./database');
}
// Exporter toutes les fonctions du module chargé
module.exports = databaseModule;
+1 -1
View File
@@ -4,7 +4,7 @@ const router = express.Router();
const bcrypt = require('bcrypt');
const { body, validationResult } = require('express-validator');
const { getOne } = require('../config/database');
const { getOne } = require('../config/database-loader');
const { generateToken, authenticateToken } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -2,7 +2,7 @@
const express = require('express');
const router = express.Router();
const { google } = require('googleapis');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -6,7 +6,7 @@ const path = require('path');
const fs = require('fs');
const { body, validationResult } = require('express-validator');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -2,7 +2,7 @@
const express = require('express');
const router = express.Router();
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const { getOne } = require('../config/database');
const { getOne } = require('../config/database-loader');
const logger = require('../config/logger');
// Cache pour les modèles (rafraîchi toutes les heures)
+1 -1
View File
@@ -3,7 +3,7 @@ const express = require('express');
const router = express.Router();
const Parser = require('rss-parser');
const axios = require('axios');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -3,7 +3,7 @@ const express = require('express');
const router = express.Router();
const Parser = require('rss-parser');
const axios = require('axios');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -1,7 +1,7 @@
// Routes de gestion des paramètres
const express = require('express');
const router = express.Router();
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -3,7 +3,7 @@ const express = require('express');
const router = express.Router();
const { body, validationResult } = require('express-validator');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -4,7 +4,7 @@ const router = express.Router();
const bcrypt = require('bcrypt');
const { body, validationResult } = require('express-validator');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const { authenticateToken, requireAdmin } = require('../middleware/auth');
const logger = require('../config/logger');
+1 -1
View File
@@ -7,7 +7,7 @@ const path = require('path');
const fs = require('fs');
const logger = require('./config/logger');
const { initDatabase } = require('./config/database');
const { initDatabase } = require('./config/database-loader');
// Créer l'application Express
const app = express();
+1 -1
View File
@@ -1,6 +1,6 @@
// Service RSS NOUVEAU - Architecture simple et robuste
const Parser = require('rss-parser');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const logger = require('../config/logger');
const parser = new Parser({
+1 -1
View File
@@ -1,6 +1,6 @@
// Service RSS NOUVEAU - Architecture simple et robuste
const Parser = require('rss-parser');
const { getAll, getOne, runQuery } = require('../config/database');
const { getAll, getOne, runQuery } = require('../config/database-loader');
const logger = require('../config/logger');
const parser = new Parser({