godcrm/run-migrations.mjs
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

33 lines
1.1 KiB
JavaScript

import knex from 'knex';
import path from 'path';
import { fileURLToPath } from 'url';
import { moduleMigrationDirs } from './backend/modules/loader.js'; // MODULE-CONTRACT v1: pick up module-owned migrations
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const db = knex({
client: 'pg',
connection: {
host: process.env.POSTGRES_HOST || 'localhost',
port: parseInt(process.env.POSTGRES_PORT || '5432'),
database: process.env.POSTGRES_DB || 'godcrm_prod',
user: process.env.POSTGRES_USER || 'godcrm',
password: process.env.POSTGRES_PASSWORD || 'godcrm_dev_2026'
},
migrations: {
directory: [path.join(__dirname, 'backend/database/migrations/knex'), ...moduleMigrationDirs()]
}
});
console.log('Running migrations for database:', process.env.POSTGRES_DB || 'godcrm_prod');
try {
const [batch, migrations] = await db.migrate.latest();
console.log('Batch:', batch);
console.log('Migrations applied:', migrations.length ? migrations : 'None (already up to date)');
} catch (err) {
console.error('Migration error:', err.message);
process.exit(1);
} finally {
await db.destroy();
}