feat(settings): add database backup management

This commit is contained in:
Rafael Foster
2026-04-29 14:04:04 -03:00
parent 7e61a83db9
commit 0cbd93e4e0
25 changed files with 816 additions and 33 deletions
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env node
/**
* Restore an Oikos database backup from the CLI.
*
* Usage:
* node --import dotenv/config scripts/restore-backup.js /path/to/oikos-backup.db
*/
import path from 'node:path';
import fs from 'node:fs/promises';
import 'dotenv/config';
import { getPath, restoreFromFile } from '../server/db.js';
const backupPath = process.argv[2];
if (!backupPath) {
console.error('Usage: node --import dotenv/config scripts/restore-backup.js /path/to/oikos-backup.db');
process.exit(1);
}
const resolved = path.resolve(backupPath);
try {
await fs.access(resolved);
const result = await restoreFromFile(resolved);
console.log(`Restored ${resolved} into ${getPath()}. Schema v${result.schemaVersion}.`);
if (result.rollbackPath) {
console.log(`Previous database copy saved at ${result.rollbackPath}.`);
}
process.exit(0);
} catch (err) {
console.error(`Restore failed: ${err?.message || err}`);
process.exit(1);
}