ERP-node/backend-node/clean-screen-tables.js

37 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-09-01 11:48:12 +09:00
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
async function cleanScreenTables() {
try {
console.log("🧹 기존 화면관리 테이블들을 정리합니다...");
// 기존 테이블들을 순서대로 삭제 (외래키 제약조건 때문에 순서 중요)
await prisma.$executeRaw`DROP VIEW IF EXISTS v_screen_definitions_with_auth CASCADE`;
console.log("✅ 뷰 삭제 완료");
await prisma.$executeRaw`DROP TABLE IF EXISTS screen_menu_assignments CASCADE`;
console.log("✅ screen_menu_assignments 테이블 삭제 완료");
await prisma.$executeRaw`DROP TABLE IF EXISTS screen_widgets CASCADE`;
console.log("✅ screen_widgets 테이블 삭제 완료");
await prisma.$executeRaw`DROP TABLE IF EXISTS screen_layouts CASCADE`;
console.log("✅ screen_layouts 테이블 삭제 완료");
await prisma.$executeRaw`DROP TABLE IF EXISTS screen_templates CASCADE`;
console.log("✅ screen_templates 테이블 삭제 완료");
await prisma.$executeRaw`DROP TABLE IF EXISTS screen_definitions CASCADE`;
console.log("✅ screen_definitions 테이블 삭제 완료");
console.log("🎉 모든 화면관리 테이블 정리 완료!");
} catch (error) {
console.error("❌ 테이블 정리 중 오류 발생:", error);
} finally {
await prisma.$disconnect();
}
}
cleanScreenTables();