Files

23 lines
674 B
TypeScript
Raw Permalink Normal View History

import { mkdir } from "node:fs/promises";
import { dirname } from "node:path";
import { Database } from "bun:sqlite";
const source = process.env.DB_PATH || "./dev.sqlite";
const destination = Bun.argv[2];
if (!destination) {
console.error("Usage: bun scripts/backup.ts /path/to/new-backup.sqlite");
process.exit(1);
}
if (await Bun.file(destination).exists()) {
console.error(`Backup already exists: ${destination}`);
process.exit(1);
}
await mkdir(dirname(destination), { recursive: true });
const db = new Database(source);
try {
db.query("VACUUM INTO ?").run(destination);
console.log(`SQLite backup written to ${destination}`);
} finally {
db.close();
}