/** * Script pour exécuter les migrations SQL */ import { readFileSync } from 'fs'; import { pool } from '../db.js'; async function runMigration() { try { console.log('🔄 Lecture du fichier de migration...'); // Lire le fichier SQL const migrationSQL = readFileSync( './database/migrations/add-demographics-fields.sql', 'utf8' ); console.log('🔄 Exécution de la migration...'); // Exécuter la migration await pool.query(migrationSQL); console.log('✅ Migration exécutée avec succès !'); // Vérifier que les colonnes ont été ajoutées const checkResult = await pool.query(` SELECT column_name, data_type, column_default FROM information_schema.columns WHERE table_name = 'users' AND column_name IN ('gender', 'date_of_birth') ORDER BY column_name `); console.log('\n📋 Colonnes ajoutées:'); checkResult.rows.forEach(row => { console.log(` - ${row.column_name} (${row.data_type})`); }); // Vérifier le type ENUM const enumCheck = await pool.query(` SELECT typname, enumlabel FROM pg_type JOIN pg_enum ON pg_type.oid = pg_enum.enumtypid WHERE typname = 'gender_type' ORDER BY enumlabel `); if (enumCheck.rows.length > 0) { console.log('\n📋 Valeurs du type gender_type:'); enumCheck.rows.forEach(row => { console.log(` - ${row.enumlabel}`); }); } console.log('\n✅ Migration complète et vérifiée !'); } catch (error) { console.error('❌ Erreur lors de la migration:', error.message); console.error(error); process.exit(1); } finally { await pool.end(); } } runMigration();