@paroicms/server-image-cache-engine
Version:
The image variant engine that we use at Paroi.
45 lines • 1.68 kB
JavaScript
import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersion, } from "@paroicms/internal-server-lib";
import { join } from "node:path";
import { packageDir } from "../constants.js";
import { currentDbSchemaVersion, dbSchemaName, migrateImageCacheDb } from "./ddl-migration.js";
export async function createOrOpenImageCacheConnection({ sqliteFile, logger, dependsOn, inMemory, }) {
const { logNextQuery, knexLogger } = createSqlLogger({ logger, dbSchemaName });
const { cn, newDatabase, migrationReport, databaseId } = await createOrOpenSqliteConnection({
canCreate: true,
dbSchemaName,
sqliteFile,
ddlFile: join(packageDir, "ddl", "image-cache.ddl.sql"),
migrateDb,
logger,
knexLogger,
ensureDependsOn: dependsOn
? {
dependsOn,
onMismatch: "reset",
}
: undefined,
inMemory,
});
async function migrateDb(cn) {
const dbVersion = await getMetadataDbSchemaVersion(cn, { dbSchemaName });
if (dbVersion === currentDbSchemaVersion) {
return {
migrated: false,
schemaVersion: dbVersion,
};
}
await migrateImageCacheDb(cn, {
fromVersion: dbVersion,
logger,
dependsOn,
});
return {
migrated: true,
fromVersion: dbVersion,
schemaVersion: currentDbSchemaVersion,
};
}
const isFresh = !!newDatabase || migrationReport.migrated;
return { cn, logNextQuery, isFresh, databaseId };
}
//# sourceMappingURL=db-init.js.map