# 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 배열 정리 --- ## 롤백 방법 문제 발생 시: ```sql -- 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개 | | 멀티테넌시 | 부분 지원 | 완전 지원 | | 데이터 중복 | 있음 | 없음 |