/** * Downgrades the configured database (from `.env`) to a target schema version. * * npm run downgrade -- * * Uses libdashstore's `src/providers//downgrade/_to_.js`. * Stop the API first; starting it again upgrades back to the latest version. */ import { createProvider } from '../src/db/provider.js'; import env from '../src/config/env.js'; const [rawTarget] = process.argv.slice(2); const target = Number(rawTarget); if (!rawTarget || !Number.isInteger(target) || target < 1) { console.error('Usage: npm run downgrade -- '); process.exit(1); } const provider = createProvider(); try { const before = await provider.getSchemaVersion(); const steps = await provider.downgradeSchema(target); console.log(`Schema ${env.dbProvider}: ${before} -> ${target} (${steps} step(s))`); } catch (err) { console.error(`Downgrade failed: ${err.message}`); process.exitCode = 1; } finally { await provider.close(); }