Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /** * Migration automatique au demarrage du backend. * * Execute schema.sql de facon idempotente. Toutes les instructions * utilisent IF NOT EXISTS / ON CONFLICT / DROP CONSTRAINT IF EXISTS. * * Appele avant le listen() dans index.js pour garantir que la DB * est a jour a chaque deploiement — pas besoin de step CI/CD separe. * * @module db/autoMigrate */ const fs = require('node:fs'); const path = require('node:path'); const { pool } = require('./index'); async function runMigrations() { const schemaPath = path.join(__dirname, 'schema.sql'); const sql = fs.readFileSync(schemaPath, 'utf8'); try { await pool.query(sql); console.log('[migrate] Schema applique avec succes.'); } catch (err) { // En cas d'erreur, log mais ne pas crasher le backend // Les tables essentielles existent deja, seules les nouvelles migrations echouent console.error('[migrate] Erreur migration (non bloquante) :', err.message); } } module.exports = { runMigrations }; |