File: /var/www/indoadvisory_new/web/webapp/scripts/migrate.js
const fs = require('fs').promises;
const path = require('path');
const { db } = require('../config/database');
async function runMigrations() {
console.log('🚀 Starting database migrations...');
try {
const migrationsDir = path.join(__dirname, '..', 'migrations');
const files = await fs.readdir(migrationsDir);
const sqlFiles = files.filter(file => file.endsWith('.sql')).sort();
console.log(`📝 Found ${sqlFiles.length} migration files`);
for (const file of sqlFiles) {
console.log(`⚡ Running migration: ${file}`);
const filePath = path.join(migrationsDir, file);
const sql = await fs.readFile(filePath, 'utf8');
// Split by semicolon and execute each statement
const statements = sql.split(';').filter(stmt => stmt.trim());
for (const statement of statements) {
if (statement.trim()) {
await db.query(statement);
}
}
console.log(`✅ Migration completed: ${file}`);
}
console.log('🎉 All migrations completed successfully!');
} catch (error) {
console.error('❌ Migration failed:', error);
process.exit(1);
}
}
// Run if called directly
if (require.main === module) {
runMigrations()
.then(() => process.exit(0))
.catch(err => {
console.error(err);
process.exit(1);
});
}
module.exports = { runMigrations };