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(); }