38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
/**
|
|
* Aplica la migración 042 (ncs_emitidas + ncs_recibidas) a todos los tenants.
|
|
* Idempotente — ADD COLUMN IF NOT EXISTS no falla si ya existe.
|
|
*/
|
|
import { prisma, tenantDb } from '../src/config/database.js';
|
|
import { migrate } from '../src/config/tenant-migrations.js';
|
|
|
|
async function main() {
|
|
const tenants = await prisma.tenant.findMany({
|
|
where: { active: true },
|
|
select: { id: true, rfc: true, databaseName: true, nombre: true },
|
|
orderBy: { rfc: 'asc' },
|
|
});
|
|
|
|
console.log(`Aplicando migraciones a ${tenants.length} tenants...\n`);
|
|
|
|
let ok = 0;
|
|
let failed = 0;
|
|
|
|
for (const t of tenants) {
|
|
try {
|
|
const pool = await tenantDb.getPool(t.id, t.databaseName);
|
|
await migrate(pool);
|
|
console.log(`✓ ${t.rfc.padEnd(25)} ${t.nombre}`);
|
|
ok++;
|
|
} catch (err: any) {
|
|
console.error(`✗ ${t.rfc.padEnd(25)} ${t.nombre} → ${err.message || err}`);
|
|
failed++;
|
|
}
|
|
}
|
|
|
|
console.log(`\nCompletado: ${ok} OK, ${failed} fallidos`);
|
|
await prisma.$disconnect();
|
|
process.exit(failed > 0 ? 1 : 0);
|
|
}
|
|
|
|
main().catch(e => { console.error(e); process.exit(1); });
|