From b1c2877e43962c85641d862e48811b630d130a8f Mon Sep 17 00:00:00 2001 From: Claude Integration Date: Sat, 30 May 2026 23:32:07 +0000 Subject: [PATCH] chore(sitemap): force dynamic + try/catch DB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Évite que le build échoue quand la DB n'est pas joignable au prerender. --- src/app/sitemap.ts | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 78d6edf..ab2d8e0 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -3,6 +3,11 @@ import type { MetadataRoute } from "next"; import { prisma } from "@/lib/prisma"; import { CarbetStatus } from "@/generated/prisma/enums"; +// La sitemap interroge la DB → on force le rendu dynamique pour éviter le +// prerender au build (qui n'a pas accès à la DB de prod). +export const dynamic = "force-dynamic"; +export const revalidate = 0; + const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || "http://localhost:3000"; function abs(path: string): string { @@ -22,17 +27,23 @@ export default async function sitemap(): Promise { }, ]; - const carbets = await prisma.carbet.findMany({ - where: { status: CarbetStatus.PUBLISHED }, - select: { slug: true, updatedAt: true }, - }); - - const carbetRoutes: MetadataRoute.Sitemap = carbets.map((carbet) => ({ - url: abs(`/carbets/${carbet.slug}`), - lastModified: carbet.updatedAt, - changeFrequency: "weekly", - priority: 0.7, - })); + let carbetRoutes: MetadataRoute.Sitemap = []; + try { + const carbets = await prisma.carbet.findMany({ + where: { status: CarbetStatus.PUBLISHED }, + select: { slug: true, updatedAt: true }, + }); + carbetRoutes = carbets.map((carbet) => ({ + url: abs(`/carbets/${carbet.slug}`), + lastModified: carbet.updatedAt, + changeFrequency: "weekly", + priority: 0.7, + })); + } catch { + // DB indisponible (build statique, par ex.) — on retombe sur les routes + // statiques seules, plutôt que de faire échouer la génération. + carbetRoutes = []; + } return [...staticRoutes, ...carbetRoutes]; }