This commit is contained in:
seb
2026-10-29 03:28:02 +01:00
parent 907ee998c0
commit bcdfba1742
14 changed files with 184 additions and 60 deletions

View File

@@ -0,0 +1,30 @@
/**
* 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();
}