ERP-node/docs/COLUMN_LABELS_MIGRATION_COM...

2.8 KiB

column_labels → table_type_columns 마이그레이션 완료

작업일: 2026-01-26


개요

column_labels 테이블의 데이터를 table_type_columns로 통합하여 멀티테넌시를 지원하고 데이터 중복을 제거함.


변경 사항

1. 스키마 확장

table_type_columns에 누락된 컬럼 추가:

컬럼명 타입 설명
column_label VARCHAR(200) 컬럼 라벨
reference_table VARCHAR(100) 참조 테이블
reference_column VARCHAR(100) 참조 컬럼
display_column VARCHAR(100) 표시 컬럼
code_category VARCHAR(100) 코드 카테고리
code_value VARCHAR(100) 코드 값
description TEXT 설명
is_visible BOOLEAN 표시 여부
web_type VARCHAR(50) 웹 타입 (레거시)

2. 데이터 마이그레이션

column_labels (company_code 없음)
        ↓
table_type_columns (company_code = '*')

통합 기준:

  • column_labels 데이터 → company_code = '*' (공통 설정)
  • 기존 회사별 설정 → 유지
  • 회사별 빈 값 → 공통(*)에서 복사 (COALESCE)

3. 코드 수정

12개 파일 수정:

파일 주요 변경
tableManagementService.ts SELECT/INSERT → table_type_columns
screenManagementService.ts JOIN column_labels → table_type_columns
entityJoinService.ts 엔티티 조인 쿼리 변경
ddlExecutionService.ts DDL 시 column_labels 제거
screenGroupController.ts 화면 그룹 쿼리 변경
tableManagementController.ts 컬럼 관리 쿼리 변경
adminController.ts 스키마 조회 변경
flowController.ts 플로우 컬럼 조회 변경
entityReferenceController.ts 엔티티 참조 변경
masterDetailExcelService.ts 엑셀 처리 변경
categoryTreeService.ts 카테고리 트리 변경
dataService.ts 데이터 서비스 변경

백업

column_labels_backup_20260126  -- 원본 백업
table_type_columns_backup_20260126  -- 마이그레이션 전 백업

남은 작업

  • 기능 테스트 (엔티티 조인, 화면 설정, 컬럼 라벨)
  • 1-2주 모니터링
  • column_labels 테이블 삭제
  • ddl.ts에서 systemTables 배열 정리

롤백 방법

문제 발생 시:

-- 1. 백업에서 복원
DROP TABLE IF EXISTS column_labels;
CREATE TABLE column_labels AS SELECT * FROM column_labels_backup_20260126;

-- 2. table_type_columns 복원
DROP TABLE IF EXISTS table_type_columns;
CREATE TABLE table_type_columns AS SELECT * FROM table_type_columns_backup_20260126;
  • Git에서 코드 롤백 필요

결과

항목 Before After
테이블 수 2개 1개
멀티테넌시 부분 지원 완전 지원
데이터 중복 있음 없음