import { NextResponse } from "next/server"; import { getPayload } from "payload"; import configPromise from "@payload-config"; import { getServerAppServices } from "@/lib/services/create-services.server"; export async function POST(req: Request) { const authHeader = req.headers.get("authorization"); if (authHeader !== `Bearer ${process.env.PAYLOAD_SECRET}`) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } const { logger } = getServerAppServices(); try { logger.info("Starting programmatic Payload migrations..."); const payload = await getPayload({ config: configPromise }); await payload.db.migrate(); logger.info("Successfully executed Payload migrations."); return NextResponse.json({ success: true, message: "Migrations executed successfully.", }); } catch (error) { logger.error("Failed to run migrations remotely", { error }); return NextResponse.json( { error: error instanceof Error ? error.message : "Unknown error occurred", }, { status: 500 }, ); } }