const fs = require('fs'); const path = require('path'); const mysql = require('mysql2/promise'); // Database configuration - you should update these with your actual database credentials const dbConfig = { host: process.env.DB_HOST || 'localhost', port: process.env.DB_PORT || 3306, user: process.env.DB_USER || 'root', password: process.env.DB_PASSWORD || '', database: process.env.DB_NAME || 'corrad_af_2024', multipleStatements: true }; async function runMigration() { let connection; try { console.log('🔄 Connecting to database...'); connection = await mysql.createConnection(dbConfig); console.log('✅ Connected to database successfully'); // Read the migration file const migrationPath = path.join(__dirname, '..', 'database', 'migrations', '004_create_notification_logs_table.sql'); const migrationSQL = fs.readFileSync(migrationPath, 'utf8'); console.log('📄 Running migration: 004_create_notification_logs_table.sql'); // Execute the migration const [results] = await connection.execute(migrationSQL); console.log('✅ Migration completed successfully'); console.log('🎉 Notification logs table created'); // Optional: Check if the table was created const [tables] = await connection.execute('SHOW TABLES LIKE "notification_logs"'); if (tables.length > 0) { console.log('✅ Table "notification_logs" confirmed to exist'); // Show table structure const [columns] = await connection.execute('DESCRIBE notification_logs'); console.log('📋 Table structure:'); columns.forEach(col => { console.log(` - ${col.Field}: ${col.Type} ${col.Null === 'YES' ? 'NULL' : 'NOT NULL'} ${col.Key ? `(${col.Key})` : ''}`); }); } else { console.log('❌ Table "notification_logs" was not found'); } } catch (error) { console.error('❌ Migration failed:', error.message); console.error('Stack trace:', error.stack); process.exit(1); } finally { if (connection) { await connection.end(); console.log('🔌 Database connection closed'); } } } // Run the migration console.log('🚀 Starting database migration for notification logs...'); runMigration().then(() => { console.log('✅ Migration process completed successfully'); }).catch(error => { console.error('❌ Migration process failed:', error); process.exit(1); });