Files
dashback/scripts/downgradeSchema.js
2026-10-29 03:28:02 +01:00

31 lines
999 B
JavaScript

/**
* Downgrades the configured database (from `.env`) to a target schema version.
*
* npm run downgrade -- <targetVersion>
*
* Uses libdashstore's `src/providers/<provider>/downgrade/<from>_to_<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 -- <targetVersion>');
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();
}