@paroicms/cli
Version:
CLI of ParoiCMS
62 lines • 3.13 kB
JavaScript
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { migrateFrom1To2 } from "./site-schema-migration/site-schema-migration-1-to-2.js";
import { migrateFrom20To21 } from "./site-schema-migration/site-schema-migration-2.0-to-2.1.js";
import { migrateFrom21To30 } from "./site-schema-migration/site-schema-migration-2.1-to-3.0.js";
import { migrateFrom30To31 } from "./site-schema-migration/site-schema-migration-3.0-to-3.1.js";
import { migrateFrom31To40 } from "./site-schema-migration/site-schema-migration-3.1-to-4.0.js";
import { migrateFrom40To5 } from "./site-schema-migration/site-schema-migration-4.0-to-5.js";
import { migrateFrom5To6 } from "./site-schema-migration/site-schema-migration-5-to-6.js";
import { migrateFrom6To7 } from "./site-schema-migration/site-schema-migration-6-to-7.js";
import { migrateFrom7To8 } from "./site-schema-migration/site-schema-migration-7-to-8.js";
export async function siteSchemaMigration(directories) {
for (const directory of directories) {
await migrateDirectory(directory);
}
}
async function migrateDirectory(directory) {
console.info(`Migrating site-schema in directory "${directory}"`);
let siteSchema = JSON.parse(await readFile(join(directory, "site-schema.json"), "utf-8"));
const targetVersion = "8";
if (siteSchema.version === targetVersion) {
console.info(`… already at version ${targetVersion}`);
return;
}
if (siteSchema.schemaEngineVersion === "1.0.0") {
siteSchema = await migrateFrom1To2(directory, siteSchema);
console.info("… migrated from version 1.0.0 to 2.0");
}
if (siteSchema.schemaEngineVersion === "2.0" || siteSchema.version === "2.0") {
siteSchema = await migrateFrom20To21(directory, siteSchema);
console.info("… migrated from version 2.0 to 2.1");
}
if (siteSchema.version === "2.1") {
siteSchema = await migrateFrom21To30(directory, siteSchema);
console.info("… migrated from version 2.1 to 3.0");
}
if (siteSchema.version === "3.0") {
siteSchema = await migrateFrom30To31(directory, siteSchema);
console.info("… migrated from version 3.0 to 3.1");
}
if (siteSchema.version === "3.1") {
siteSchema = await migrateFrom31To40(directory, siteSchema);
console.info("… migrated from version 3.1 to 4.0");
}
if (siteSchema.version === "4.0") {
siteSchema = await migrateFrom40To5(directory, siteSchema);
console.info("… migrated from version 4.0 to 5");
}
if (siteSchema.version === "5") {
siteSchema = await migrateFrom5To6(directory, siteSchema);
console.info("… migrated from version 5 to 6");
}
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");
}
}
//# sourceMappingURL=site-schema-migration.js.map