24 lines
583 B
JavaScript
24 lines
583 B
JavaScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
let prisma;
|
|
|
|
export function buildDatabaseUrl(config) {
|
|
const { host, user, password, database } = config.db;
|
|
return `mysql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@${host}:3306/${database}?connection_limit=10`;
|
|
}
|
|
|
|
export function getPrismaClient(config) {
|
|
if (!prisma) {
|
|
process.env.DATABASE_URL = buildDatabaseUrl(config);
|
|
prisma = new PrismaClient();
|
|
}
|
|
return prisma;
|
|
}
|
|
|
|
export async function closePrismaClient() {
|
|
if (prisma) {
|
|
await prisma.$disconnect();
|
|
prisma = undefined;
|
|
}
|
|
}
|