UNPKG

@coko/server

Version:

Reusable server for use by Coko's projects

72 lines 2.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.META_TABLE = exports.MIGRATIONS_TABLE = exports.migrationsMeta = exports.migrations = void 0; const db_1 = __importDefault(require("./db")); const MIGRATIONS_TABLE = 'migrations'; exports.MIGRATIONS_TABLE = MIGRATIONS_TABLE; const META_TABLE = 'coko_server_meta'; exports.META_TABLE = META_TABLE; const migrations = { createTable: async () => { await db_1.default.raw(` CREATE TABLE IF NOT EXISTS ${MIGRATIONS_TABLE} ( id TEXT PRIMARY KEY, run_at TIMESTAMPTZ DEFAULT current_timestamp ) `); }, getLastMigration: async () => { const row = await (0, db_1.default)(MIGRATIONS_TABLE) .select('id') .orderBy('runAt', 'desc') .first(); return row.id; }, getRows: async () => { return await (0, db_1.default)(MIGRATIONS_TABLE).orderBy('runAt', 'asc'); }, logMigration: async (migrationName) => { await db_1.default.raw(`INSERT INTO ${MIGRATIONS_TABLE} (id) VALUES (?)`, [ migrationName, ]); }, unlogMigration: async (migrationName) => { await (0, db_1.default)(MIGRATIONS_TABLE).where({ id: migrationName }).delete(); }, }; exports.migrations = migrations; const migrationsMeta = { clearCheckpoint: async () => { await (0, db_1.default)(META_TABLE).update({ lastSuccessfulMigrateCheckpoint: null, }); }, exists: async () => { return await db_1.default.schema.hasTable(META_TABLE); }, getCheckpoint: async () => { const row = await (0, db_1.default)(META_TABLE) .select('lastSuccessfulMigrateCheckpoint') .first(); return row.lastSuccessfulMigrateCheckpoint; }, getData: async () => { const rows = await (0, db_1.default)(META_TABLE); return rows[0]; // this table always has one row only }, setCheckpoint: async (value) => { await (0, db_1.default)(META_TABLE).update({ lastSuccessfulMigrateCheckpoint: value, }); }, setPgBossSchema: async (value) => { await (0, db_1.default)(META_TABLE).update({ pg_boss_schema: value, }); }, }; exports.migrationsMeta = migrationsMeta; //# sourceMappingURL=migrateDbHelpers.js.map