Rewrite the data access layer onto Prisma Client

This commit is contained in:
2026-07-31 01:27:18 +02:00
parent 439453be38
commit 3a04da3180
4 changed files with 119 additions and 147 deletions
+11 -16
View File
@@ -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;
}
}