#!/usr/bin/env node /** * Run a specific migration file * Usage: node run-migration.js migrations/017_fix_archives_embedding_dimension.sql */ import pg from 'pg'; import { readFileSync } from 'fs'; import { resolve } from 'path'; const { Pool } = pg; // Configuration - Direct WireGuard connection to INFRA VM PostgreSQL const config = { host: process.env.POSTGRES_HOST || 'postgres.agiliton.internal', port: 5432, database: 'agiliton', user: 'agiliton', password: 'QtqiwCOAUpQNF6pjzOMAREzUny2bY8V1', }; async function runMigration(migrationFile) { const pool = new Pool(config); try { // Read migration SQL const sql = readFileSync(resolve(migrationFile), 'utf-8'); console.log(`Running migration: ${migrationFile}`); console.log('SQL:', sql); // Execute migration await pool.query(sql); console.log('Migration completed successfully!'); } catch (error) { console.error('Migration failed:', error); process.exit(1); } finally { await pool.end(); } } // Get migration file from command line const migrationFile = process.argv[2]; if (!migrationFile) { console.error('Usage: node run-migration.js '); process.exit(1); } runMigration(migrationFile);