Files
i-want-to-heal/scripts/backup-db.mjs
T
2026-06-17 20:04:36 -04:00

21 lines
648 B
JavaScript

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