UNPKG

@paroicms/site-generator-plugin

Version:

ParoiCMS Site Generator Plugin

35 lines (34 loc) 1.46 kB
import { executeDdl, generateDatabaseId, setMetadataDbSchemaVersion, setMetadataValue, } from "@paroicms/internal-server-lib"; export const dbSchemaName = "site-generator"; export const currentDbSchemaVersion = 4; export async function migrateSiteGeneratorDb(cn, { fromVersion, logger, ddlFile }) { const toVersion = currentDbSchemaVersion; let currentVersion = fromVersion; if (currentVersion === 1) { await cn.raw("drop table PaGenSession"); await cn.raw("drop table PaMetadata"); await executeDdl(cn, ddlFile); currentVersion = currentDbSchemaVersion; } if (currentVersion === 2) { const databaseId = generateDatabaseId(); await setMetadataValue(cn, { dbSchemaName, key: "databaseId", value: databaseId, }); await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 3 }); currentVersion = 3; } if (currentVersion === 3) { await cn.schema.table("PgIssueEvent", (table) => { table.string("siteId", 100).nullable(); }); await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 4 }); currentVersion = 4; } if (currentVersion !== toVersion) { throw new Error(`version of ${dbSchemaName} database should be '${toVersion}', but is '${currentVersion}'`); } logger.info(`${dbSchemaName} database was migrated from ${fromVersion} to ${currentVersion}`); }