1import { drizzle } from "drizzle-orm/mysql2";
2import { createPool, type Pool } from "mysql2/promise";
3
4import { env } from "~/env";
5import * as schema from "./schema";
6
7/**
8 * Cache the database connection in development. This avoids creating a new connection on every HMR
9 * update.
10 */
11const globalForDb = globalThis as unknown as {
12 conn: Pool | undefined;
13};
14
15const conn = globalForDb.conn ?? createPool({ uri: env.DATABASE_URL });
16if (env.NODE_ENV !== "production") globalForDb.conn = conn;
17
18export const db = drizzle(conn, { schema, mode: "default" });