remix-demo
react router (remix) demo
git clone https://9o.is/git/remix-demo.git
db.server.ts
(692B)
1 import { PrismaClient } from "@prisma/client";
2 import invariant from "tiny-invariant";
3
4 let prisma: PrismaClient;
5
6 declare global {
7 var __db__: PrismaClient;
8 }
9
10 if (!global.__db__) {
11 global.__db__ = getClient();
12 }
13 prisma = global.__db__;
14
15 function getClient() {
16 const { DATABASE_URL } = process.env;
17 invariant(typeof DATABASE_URL === "string", "DATABASE_URL env var not set");
18
19 const databaseUrl = new URL(DATABASE_URL);
20
21 console.log(`🔌 setting up prisma client to ${databaseUrl.host}`);
22
23 const client = new PrismaClient({
24 datasources: {
25 db: {
26 url: databaseUrl.toString(),
27 },
28 },
29 });
30
31 client.$connect();
32
33 return client;
34 }
35
36 export { prisma };