import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; import * as schema from './schema'; const connectionString = process.env.DATABASE_URL!; // Connection pool for queries. const queryClient = postgres(connectionString, { max: 20, idle_timeout: 20, connect_timeout: 10, }); export const db = drizzle(queryClient, { schema, logger: process.env.NODE_ENV === 'development', }); /** Close the underlying connection pool. Used by the vitest teardown so * the parent process can exit cleanly. */ export async function closeDb(): Promise { await queryClient.end({ timeout: 5 }); } export type Database = typeof db;