const sqlite3 = require("better-sqlite3"); module.exports = { migrationTarget: new sqlite3("./brainz-social.sqlite3"), getAppliedMigrations: (target) => { return new Promise((res, rej) => { var rows = target.prepare("SELECT * FROM brainz_migrations;").all(); res(rows.map((row) => row.name)); }).catch((rej) => { if ( rej.code === "SQLITE_ERROR" && rej.message === "no such table: brainz_migrations") return []; throw new Error("Unhandled SQLITE error", {cause: rej}); }) }, addAppliedMigration: (target, migrationName) => { return new Promise((res, rej) => { target.prepare("INSERT INTO brainz_migrations (name) VALUES (?);").run(migrationName); }); }, removeAppliedMigration: (target, migrationName) => { return new Promise((res, rej) => { target.prepare("DELETE FROM brainz_migrations WHERE name = ?;").run(migrationName); }); } }