const { DataSource } = require('typeorm'); const path = require('path'); const dataSourceOptions = { type: 'postgres', host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT || '5432', 10), username: process.env.DB_USERNAME || 'finance_user', password: process.env.DB_PASSWORD || 'dev_password_123', database: process.env.DB_NAME || 'finance_app', migrations: [path.join(__dirname, '../dist/database/migrations/*.js')], logging: true, }; async function runMigrations() { console.log('🔄 Running database migrations...'); const dataSource = new DataSource(dataSourceOptions); try { await dataSource.initialize(); console.log('📦 Database connection established'); const migrations = await dataSource.runMigrations({ transaction: 'all' }); if (migrations.length === 0) { console.log('✅ No pending migrations'); } else { console.log(`✅ Successfully ran ${migrations.length} migration(s):`); migrations.forEach((m) => console.log(` - ${m.name}`)); } await dataSource.destroy(); console.log('🔌 Database connection closed'); } catch (error) { console.error('❌ Migration failed:', error.message); process.exit(1); } } runMigrations();