SPB Git forge

spb/spb-cloud

Public
10commits 1branches 0releases
3.2 MBsize
maindefault branch
1 h agolast push
JavaScript 56.7% TypeScript 42.6%
903 B · 25 lines typescript
Raw Blame History
1import { PrismaClient } from "@prisma/client";23const globalForPrisma = globalThis as unknown as {4  prisma: PrismaClient | undefined;5  prismaPragmaSet: boolean | undefined;6};78export const prisma = globalForPrisma.prisma ?? new PrismaClient();910// SQLite: WAL est persistant (posé sur le fichier), mais busy_timeout est11// par-connexion → on l'applique une fois au démarrage pour que les écritures12// concurrentes attendent le verrou au lieu d'échouer ("database is locked").13if (!globalForPrisma.prismaPragmaSet) {14  globalForPrisma.prismaPragmaSet = true;15  prisma16    .$executeRawUnsafe("PRAGMA busy_timeout = 5000;")17    .then(() => prisma.$executeRawUnsafe("PRAGMA synchronous = NORMAL;"))18    .catch(() => {19      /* non-SQLite ou indisponible : ignore */20    });21}2223// Toujours mémoriser le client (évite l'épuisement de connexions en dev hot-reload)24globalForPrisma.prisma = prisma;25