UNPKG

@paroicms/server

Version:
38 lines 1.78 kB
import { messageOf } from "@paroicms/public-anywhere-lib"; import { ApiError, siteSchemaFormatVersion } from "@paroicms/public-server-lib"; import { getSiteContext, unloadSiteContext } from "../../site-context/site-context.js"; import { migrateSiteSchema } from "../../site-schema-migration/site-schema-migration.js"; import { permissionGuard } from "../auth/authorization.helper.js"; export const migrationResolvers = { Query: { migrationInfo: async (_parent, _args, { siteContext, httpContext }) => { await permissionGuard(siteContext, httpContext, "maintenance"); if (siteContext.status !== "migration") { throw new ApiError("Site is not in migration mode", 400); } return { currentSiteSchemaVersion: siteContext.deprecatedSiteSchema.ParoiCMSSiteSchemaFormatVersion, targetSiteSchemaVersion: siteSchemaFormatVersion, }; }, }, Mutation: { runSiteSchemaMigrations: async (_parent, _args, { siteContext, httpContext }) => { await permissionGuard(siteContext, httpContext, "maintenance"); if (siteContext.status !== "migration") { throw new Error("Site is not in migration mode"); } try { await migrateSiteSchema(siteContext); await unloadSiteContext(siteContext, { inRequest: true }); await getSiteContext(siteContext.fqdn); return true; } catch (error) { siteContext.logger.error("Migration failed", error); throw new Error(`Migration failed: ${messageOf(error)}`); } }, }, }; //# sourceMappingURL=migration.resolver.js.map