기본 구조 설계 및 데이터베이스 생성

This commit is contained in:
2025-09-02 11:11:48 +09:00
parent 1bf28291b5
commit 3129e3663f
4 changed files with 1062 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
async function createCommonCodeTables() {
try {
console.log("=== 공통코드 테이블 생성 시작 ===");
// 1. code_category 테이블 생성
await prisma.$executeRaw`
CREATE TABLE IF NOT EXISTS code_category (
category_code VARCHAR(50) PRIMARY KEY,
category_name VARCHAR(100) NOT NULL,
category_name_eng VARCHAR(100),
description TEXT,
sort_order INTEGER DEFAULT 0,
is_active CHAR(1) DEFAULT 'Y',
created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_by VARCHAR(50),
updated_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50)
)
`;
console.log("✅ code_category 테이블 생성 완료");
// 2. code_info 테이블 생성
await prisma.$executeRaw`
CREATE TABLE IF NOT EXISTS code_info (
code_category VARCHAR(50) NOT NULL,
code_value VARCHAR(50) NOT NULL,
code_name VARCHAR(100) NOT NULL,
code_name_eng VARCHAR(100),
description TEXT,
sort_order INTEGER DEFAULT 0,
is_active CHAR(1) DEFAULT 'Y',
created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_by VARCHAR(50),
updated_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50),
PRIMARY KEY (code_category, code_value),
CONSTRAINT fk_code_info_category
FOREIGN KEY (code_category) REFERENCES code_category(category_code)
ON DELETE CASCADE
ON UPDATE CASCADE
)
`;
console.log("✅ code_info 테이블 생성 완료");
// 3. 인덱스 생성
await prisma.$executeRaw`
CREATE INDEX IF NOT EXISTS idx_code_category_active ON code_category(is_active)
`;
await prisma.$executeRaw`
CREATE INDEX IF NOT EXISTS idx_code_category_sort ON code_category(sort_order)
`;
await prisma.$executeRaw`
CREATE INDEX IF NOT EXISTS idx_code_info_category ON code_info(code_category)
`;
await prisma.$executeRaw`
CREATE INDEX IF NOT EXISTS idx_code_info_active ON code_info(is_active)
`;
await prisma.$executeRaw`
CREATE INDEX IF NOT EXISTS idx_code_info_sort ON code_info(code_category, sort_order)
`;
console.log("✅ 인덱스 생성 완료");
console.log("🎉 공통코드 테이블 생성 완료!");
} catch (error) {
console.error("❌ 오류 발생:", error);
} finally {
await prisma.$disconnect();
}
}
createCommonCodeTables();