Rewrite the data access layer onto Prisma Client
This commit is contained in:
@@ -1,28 +1,23 @@
|
||||
import mariadb from 'mariadb';
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
let pool;
|
||||
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 getPool(config) {
|
||||
if (!pool) {
|
||||
pool = mariadb.createPool({
|
||||
host: config.db.host,
|
||||
user: config.db.user,
|
||||
password: config.db.password,
|
||||
database: config.db.database,
|
||||
connectionLimit: 10,
|
||||
});
|
||||
export function getPrismaClient(config) {
|
||||
if (!prisma) {
|
||||
process.env.DATABASE_URL = buildDatabaseUrl(config);
|
||||
prisma = new PrismaClient();
|
||||
}
|
||||
return pool;
|
||||
return prisma;
|
||||
}
|
||||
|
||||
export async function closePool() {
|
||||
if (pool) {
|
||||
await pool.end();
|
||||
pool = undefined;
|
||||
export async function closePrismaClient() {
|
||||
if (prisma) {
|
||||
await prisma.$disconnect();
|
||||
prisma = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user