diff --git a/backend-node/src/routes/companyManagementRoutes.ts b/backend-node/src/routes/companyManagementRoutes.ts index a2e4a85c..630a3234 100644 --- a/backend-node/src/routes/companyManagementRoutes.ts +++ b/backend-node/src/routes/companyManagementRoutes.ts @@ -3,10 +3,9 @@ import { authenticateToken } from "../middleware/authMiddleware"; import { AuthenticatedRequest } from "../types/auth"; import { logger } from "../utils/logger"; import { FileSystemManager } from "../utils/fileSystemManager"; -import { PrismaClient } from "@prisma/client"; +import { query, queryOne } from "../database/db"; const router = express.Router(); -const prisma = new PrismaClient(); // 모든 라우트에 인증 미들웨어 적용 router.use(authenticateToken); @@ -29,9 +28,10 @@ router.delete( }); // 1. 회사 존재 확인 - const existingCompany = await prisma.company_mng.findUnique({ - where: { company_code: companyCode }, - }); + const existingCompany = await queryOne( + `SELECT * FROM company_mng WHERE company_code = $1`, + [companyCode] + ); if (!existingCompany) { res.status(404).json({ @@ -58,12 +58,10 @@ router.delete( } // 3. 데이터베이스에서 회사 삭제 (soft delete) - await prisma.company_mng.update({ - where: { company_code: companyCode }, - data: { - status: "deleted", - }, - }); + await query( + `UPDATE company_mng SET status = 'deleted' WHERE company_code = $1`, + [companyCode] + ); logger.info("회사 삭제 완료", { companyCode, diff --git a/backend-node/src/routes/ddlRoutes.ts b/backend-node/src/routes/ddlRoutes.ts index f32ae586..ef80ede5 100644 --- a/backend-node/src/routes/ddlRoutes.ts +++ b/backend-node/src/routes/ddlRoutes.ts @@ -10,6 +10,7 @@ import { validateDDLPermission, } from "../middleware/superAdminMiddleware"; import { authenticateToken } from "../middleware/authMiddleware"; +import { query } from "../database/db"; const router = express.Router(); @@ -180,11 +181,7 @@ router.get("/info", authenticateToken, requireSuperAdmin, (req, res) => { router.get("/health", authenticateToken, async (req, res) => { try { // 기본적인 데이터베이스 연결 테스트 - const { PrismaClient } = await import("@prisma/client"); - const prisma = new PrismaClient(); - - await prisma.$queryRaw`SELECT 1`; - await prisma.$disconnect(); + await query("SELECT 1"); res.json({ success: true, diff --git a/backend-node/src/services/multiConnectionQueryService.ts b/backend-node/src/services/multiConnectionQueryService.ts index 0751dfef..45e77500 100644 --- a/backend-node/src/services/multiConnectionQueryService.ts +++ b/backend-node/src/services/multiConnectionQueryService.ts @@ -8,7 +8,7 @@ import { ExternalDbConnectionService } from "./externalDbConnectionService"; import { TableManagementService } from "./tableManagementService"; import { ExternalDbConnection, ApiResponse } from "../types/externalDbTypes"; import { ColumnTypeInfo, TableInfo } from "../types/tableManagement"; -import prisma from "../config/database"; +import { query } from "../database/db"; import { logger } from "../utils/logger"; // 🔧 Prisma 클라이언트 중복 생성 방지 - 기존 인스턴스 재사용 @@ -1002,7 +1002,7 @@ export class MultiConnectionQueryService { queryParams.push(...Object.values(conditions)); } - return await prisma.$queryRawUnsafe(query, ...queryParams); + return await query(query, queryParams); case "insert": if (!data) throw new Error("INSERT 작업에는 데이터가 필요합니다."); @@ -1019,11 +1019,10 @@ export class MultiConnectionQueryService { RETURNING * `; - const insertResult = await prisma.$queryRawUnsafe( - insertQuery, - ...insertValues - ); - return Array.isArray(insertResult) ? insertResult[0] : insertResult; + const insertResult = await query(insertQuery, insertValues); + return Array.isArray(insertResult) && insertResult.length > 0 + ? insertResult[0] + : insertResult; case "update": if (!data) throw new Error("UPDATE 작업에는 데이터가 필요합니다."); @@ -1052,7 +1051,7 @@ export class MultiConnectionQueryService { ...Object.values(data), ...Object.values(conditions), ]; - return await prisma.$queryRawUnsafe(updateQuery, ...updateParams); + return await query(updateQuery, updateParams); case "delete": if (!conditions) @@ -1068,10 +1067,7 @@ export class MultiConnectionQueryService { RETURNING * `; - return await prisma.$queryRawUnsafe( - deleteQuery, - ...Object.values(conditions) - ); + return await query(deleteQuery, Object.values(conditions)); default: throw new Error(`지원하지 않는 작업입니다: ${operation}`);