diff --git a/config/database-loader.js b/config/database-loader.js new file mode 100644 index 0000000..2e1435d --- /dev/null +++ b/config/database-loader.js @@ -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; diff --git a/routes/auth.routes.js b/routes/auth.routes.js index f0bb807..1ff6e10 100644 --- a/routes/auth.routes.js +++ b/routes/auth.routes.js @@ -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'); diff --git a/routes/calendar.routes.js b/routes/calendar.routes.js index 82eea6b..21313d7 100644 --- a/routes/calendar.routes.js +++ b/routes/calendar.routes.js @@ -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'); diff --git a/routes/notes.routes.js b/routes/notes.routes.js index 4960f7b..3b88977 100644 --- a/routes/notes.routes.js +++ b/routes/notes.routes.js @@ -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'); diff --git a/routes/openrouter.routes.js b/routes/openrouter.routes.js index 42a43e8..59b242f 100644 --- a/routes/openrouter.routes.js +++ b/routes/openrouter.routes.js @@ -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) diff --git a/routes/rss.routes-v2.js b/routes/rss.routes-v2.js index aee90eb..4b3a289 100644 --- a/routes/rss.routes-v2.js +++ b/routes/rss.routes-v2.js @@ -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'); diff --git a/routes/rss.routes.js b/routes/rss.routes.js index aee90eb..4b3a289 100644 --- a/routes/rss.routes.js +++ b/routes/rss.routes.js @@ -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'); diff --git a/routes/settings.routes.js b/routes/settings.routes.js index 8943729..ede4272 100644 --- a/routes/settings.routes.js +++ b/routes/settings.routes.js @@ -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'); diff --git a/routes/todos.routes.js b/routes/todos.routes.js index 20a93a5..31d2441 100644 --- a/routes/todos.routes.js +++ b/routes/todos.routes.js @@ -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'); diff --git a/routes/users.routes.js b/routes/users.routes.js index 8973e4d..de19b63 100644 --- a/routes/users.routes.js +++ b/routes/users.routes.js @@ -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'); diff --git a/server.js b/server.js index 0b3128f..d1db284 100644 --- a/server.js +++ b/server.js @@ -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(); diff --git a/services/rss-scheduler-v2.js b/services/rss-scheduler-v2.js index 44617bf..32d3f3a 100644 --- a/services/rss-scheduler-v2.js +++ b/services/rss-scheduler-v2.js @@ -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({ diff --git a/services/rss-scheduler.js b/services/rss-scheduler.js index 44617bf..32d3f3a 100644 --- a/services/rss-scheduler.js +++ b/services/rss-scheduler.js @@ -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({