Files
i-want-to-heal-mmo/scripts/backup-db.mjs
T
2026-07-12 23:20:15 -04:00

18 lines
692 B
JavaScript

import { mkdirSync } from "node:fs";
import { resolve } from "node:path";
import { DatabaseSync } from "node:sqlite";
const dataDirectory = resolve(process.env.DATA_DIR ?? "data");
const backupDirectory = resolve(process.env.BACKUP_DIR ?? "backups");
const timestamp = new Date().toISOString().replaceAll(":", "-").replaceAll(".", "-");
const backupPath = resolve(backupDirectory, `game-${timestamp}.db`);
mkdirSync(backupDirectory, { recursive: true });
const database = new DatabaseSync(resolve(dataDirectory, "game.db"));
try {
database.exec(`VACUUM INTO '${backupPath.replaceAll("'", "''")}'`);
console.log(`SQLite backup created: ${backupPath}`);
} finally {
database.close();
}