@paroicms/connector
Version:
An API to help build management tools for ParoiCMS instances
42 lines • 1.5 kB
JavaScript
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