UNPKG

@paroicms/site-generator-plugin

Version:

ParoiCMS Site Generator Plugin

38 lines (37 loc) 1.35 kB
import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersion, } from "@paroicms/internal-server-lib"; import { join } from "node:path"; import { projectDir } from "../context.js"; import { currentDbSchemaVersion, dbSchemaName, migrateSiteGeneratorDb } from "./ddl-migration.js"; export async function createOrOpenSiteGeneratorConnection({ sqliteFile, canCreate, logger, }) { const { logNextQuery, knexLogger } = createSqlLogger({ logger, dbSchemaName }); const ddlFile = join(projectDir, "ddl", "site-generator.ddl.sql"); const { cn } = await createOrOpenSqliteConnection({ canCreate, dbSchemaName, sqliteFile, ddlFile, migrateDb, knexLogger, logger, }); async function migrateDb(cn) { const dbVersion = await getMetadataDbSchemaVersion(cn, { dbSchemaName }); if (dbVersion === currentDbSchemaVersion) { return { migrated: false, schemaVersion: dbVersion, }; } await migrateSiteGeneratorDb(cn, { fromVersion: dbVersion, logger, ddlFile, }); return { migrated: true, fromVersion: dbVersion, schemaVersion: currentDbSchemaVersion, }; } return { cn, logNextQuery }; }