66 lines
1.7 KiB
JavaScript
66 lines
1.7 KiB
JavaScript
/**
|
|
* 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();
|