Files
healer-man/scripts/backup-game-database.mjs
2026-08-14 15:56:39 -04:00

19 lines
724 B
JavaScript

import { mkdirSync } from "node:fs";
import path from "node:path";
import { backup, DatabaseSync } from "node:sqlite";
const dataDir = path.resolve(process.env.DATA_DIR ?? "data/runtime");
const backupDir = path.resolve(process.env.BACKUP_DIR ?? path.join(dataDir, "backups"));
const sourcePath = path.join(dataDir, "game.db");
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
const destinationPath = path.join(backupDir, `game-${stamp}.db`);
mkdirSync(backupDir, { recursive: true });
const database = new DatabaseSync(sourcePath, { readOnly: true });
try {
await backup(database, destinationPath);
console.log(`Healer Man database backup created: ${destinationPath}`);
} finally {
database.close();
}