import { identityShimEnabled } from "../src/config/env"; import { migrate, pendingMigrations } from "../src/infra/db/migrate"; import { bootstrapScript, describeTarget, runWithDb } from "./_bootstrap"; /** * Aplica as migrations pendentes. `--dry-run` apenas lista: usado no pipeline * antes do passo manual de migração, para que ninguém descubra o que vai rodar * só depois de ter rodado. */ const dryRun = process.argv.includes("--dry-run"); bootstrapScript("migrate"); runWithDb("migrate", "admin", async (db) => { const pending = await pendingMigrations(db); console.log(`alvo: ${describeTarget()}`); console.log(`shim de identidade: ${identityShimEnabled() ? "SERÁ aplicado" : "NÃO será aplicado"}`); if (pending.length === 0) { console.log("migrations: nada pendente"); return; } if (dryRun) { console.log(`migrations pendentes (dry-run, nada aplicado): ${pending.join(", ")}`); return; } const ran = await migrate(db); console.log(ran.length ? `migrations aplicadas: ${ran.join(", ")}` : "migrations: nada pendente"); });