2.8 KiB
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개 |
| 멀티테넌시 | 부분 지원 | 완전 지원 |
| 데이터 중복 | 있음 | 없음 |