@paroicms/server
Version:
The ParoiCMS server
48 lines • 2.07 kB
JavaScript
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { appConf, registeredSites } from "../context.js";
import { migrateFrom6To7 } from "./migrations/site-schema-migration-6-to-7.js";
import { migrateFrom7To8 } from "./migrations/site-schema-migration-7-to-8.js";
import { migrateFrom8To9 } from "./migrations/site-schema-migration-8-to-9.js";
import { migrateFrom9To10 } from "./migrations/site-schema-migration-9-to-10.js";
export async function migrateSiteSchema(siteContext) {
await migrateDirectory(siteContext.siteDir);
}
export async function migrateSiteSchemas() {
let directories;
if (appConf.kind === "multisite") {
directories = Array.from(registeredSites.values()).map((site) => site.siteDir);
}
else {
directories = [process.cwd()];
}
for (const directory of directories) {
await migrateDirectory(directory);
}
}
async function migrateDirectory(directory) {
const targetVersion = "10";
console.info(`Migrating site-schema in directory "${directory}"`);
let siteSchema = JSON.parse(await readFile(join(directory, "site-schema.json"), "utf-8"));
if (siteSchema.ParoiCMSSiteSchemaFormatVersion === targetVersion) {
console.info(`… already at version ${targetVersion}`);
return;
}
if (siteSchema.version === "6") {
siteSchema = await migrateFrom6To7(directory, siteSchema);
console.info("… migrated from version 6 to 7");
}
if (siteSchema.version === "7") {
siteSchema = await migrateFrom7To8(directory, siteSchema);
console.info("… migrated from version 7 to 8");
}
if (siteSchema.version === "8") {
siteSchema = await migrateFrom8To9(directory, siteSchema);
console.info("… migrated from version 8 to 9");
}
if (siteSchema.ParoiCMSSiteSchemaFormatVersion === "9") {
siteSchema = await migrateFrom9To10(directory, siteSchema);
console.info("… migrated from version 9 to 10");
}
}
//# sourceMappingURL=site-schema-migration.js.map