UNPKG

@paroicms/connector

Version:

An API to help build management tools for ParoiCMS instances

42 lines 1.5 kB
import { join } from "node:path"; import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersion, } from "@paroicms/internal-server-lib"; import { packageDir } from "../context.js"; import { mainDbSchemaName, mainDbSchemaVersion } from "./db-constants.js"; import { migrateMainDb } from "./ddl-migration.js"; export async function createOrOpenMainConnection(dataDir, { logger, canCreate }) { const { logNextQuery, knexLogger } = createSqlLogger({ logger, dbSchemaName: mainDbSchemaName, }); const { cn, isNewDatabase } = await createOrOpenSqliteConnection({ canCreate, dbSchemaName: mainDbSchemaName, sqliteFile: join(dataDir, "main.sqlite"), ddlFile: join(packageDir, "ddl", "main.ddl.sql"), migrateDb, knexLogger, logger, }); async function migrateDb(cn) { const dbVersion = await getMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, }); if (dbVersion === mainDbSchemaVersion) { return { migrated: false, schemaVersion: dbVersion, }; } await migrateMainDb(cn, { fromVersion: dbVersion, logger, }); return { migrated: true, fromVersion: dbVersion, schemaVersion: mainDbSchemaVersion, }; } return { cn, logNextQuery, isNewDatabase }; } //# sourceMappingURL=db-init.js.map