All files / src/db autoMigrate.js

0% Statements 0/10
100% Branches 0/0
0% Functions 0/1
0% Lines 0/10

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 };