- Replace Prisma client runtime with Drizzle ORM (zero Prisma engine/query engine in production) - Add Prisma-compatible facade (@/lib/prisma-facade.ts) backed by Drizzle for backwards compatibility - Runtime queries route through Drizzle ORM; @prisma/client is now devDependency (types only) - Remove @prisma/adapter-mariadb dependency; delete prisma-pool.ts and types/prisma.ts - New Drizzle schema layer: src/db/schema.ts (176 tables) and src/lib/db.ts (connection) - Update README documenting the dual-layer ORM architecture - Restore src/generated/ gitignore (build artifact for local type generation) - 0 TypeScript errors, 583 tests passing The facade intentionally uses `any` types to match the Prisma Client API surface, allowing existing code to run unmodified while routing queries through Drizzle at runtime.
17 lines
415 B
TypeScript
17 lines
415 B
TypeScript
/**
|
||
* Cap pool size during `next build` so N workers × pool don't exhaust MySQL.
|
||
* Kept free of driver/env imports so unit tests can exercise it in isolation.
|
||
*/
|
||
export function resolveConnectionLimit(
|
||
poolSize: number,
|
||
phase = process.env.NEXT_PHASE,
|
||
): number {
|
||
if (
|
||
phase === "phase-production-build" ||
|
||
phase === "phase-production-compile"
|
||
) {
|
||
return Math.min(poolSize, 5);
|
||
}
|
||
return poolSize;
|
||
}
|