import { drizzle } from "drizzle-orm/postgres-js"; import postgres from "postgres"; import * as schema from "./schema"; /** * The Drizzle database client (postgres.js driver), matching the house standard * used by the other projects. Replaces the old Prisma client (`lib/prisma.ts`). * A single connection is reused across hot reloads in dev. */ // Strip any query string (e.g. a leftover Prisma `?schema=public`) — postgres.js // forwards unknown params to the server as startup options and Postgres rejects // them ("unrecognized configuration parameter"). `public` is the default schema. const connectionString = ( process.env.DATABASE_URL ?? "postgresql://postgres:postgres@localhost:5432/moh_sass" ).split("?")[0]; const globalForDb = globalThis as unknown as { dbClient: ReturnType | undefined; }; const client = globalForDb.dbClient ?? postgres(connectionString); if (process.env.NODE_ENV !== "production") { globalForDb.dbClient = client; } export const db = drizzle(client, { schema }); export { schema };