# DDL 스크립트 실행 가이드 ## 📋 스크립트 실행 순서 **중요:** 반드시 순서대로 실행해주세요. ### 기본 테이블 생성 ```bash # 1. 기본 매핑 테이블 생성 mysql -h [HOST] -u [USER] -p [DATABASE] < 001_create_vendor_influencer_mapping_table.sql # 2. 인덱스 생성 mysql -h [HOST] -u [USER] -p [DATABASE] < 002_add_vendor_influencer_mapping_indexes.sql # 3. 외래키 설정 mysql -h [HOST] -u [USER] -p [DATABASE] < 003_add_vendor_influencer_mapping_foreign_keys.sql ``` ### 스키마 수정 ```bash # 4. 외래키 제거 mysql -h [HOST] -u [USER] -p [DATABASE] < 004_remove_approved_by_foreign_key.sql # 5. 유니크 제약조건 수정 mysql -h [HOST] -u [USER] -p [DATABASE] < 006_fix_unique_constraint_fundamental.sql # 6. 히스토리 테이블 생성 mysql -h [HOST] -u [USER] -p [DATABASE] < 007_create_status_history_table.sql ``` ### 데이터 정리 ```bash # 7. 데이터 정리 및 스키마 최적화 mysql -h [HOST] -u [USER] -p [DATABASE] < 008_clear_data_and_drop_status.sql # 8. 안전한 데이터 정리 mysql -h [HOST] -u [USER] -p [DATABASE] < 009_safe_truncate_with_fk.sql ``` ### MariaDB 호환성 ```bash # 9. MariaDB 호환 스크립트 mysql -h [HOST] -u [USER] -p [DATABASE] < 010_mariadb_compatible.sql # 10. MariaDB 동적 SQL mysql -h [HOST] -u [USER] -p [DATABASE] < 011_mariadb_safe_dynamic.sql # 11. RATING 컬럼 추가 ✨ **신규 추가** mysql -h [HOST] -u [USER] -p [DATABASE] < 012_add_rating_column.sql ``` ## 🚨 주의사항 ### 실행 전 확인사항 1. 데이터베이스 백업 완료 2. 충분한 권한 확보 (ALTER, CREATE, DROP 권한 필요) 3. 운영 시간대 피해서 실행 ### 실행 후 확인사항 1. 테이블 구조 확인: `DESC VENDOR_INFLUENCER_MAPPING;` 2. 인덱스 확인: `SHOW INDEX FROM VENDOR_INFLUENCER_MAPPING;` 3. 히스토리 테이블 확인: `DESC VENDOR_INFLUENCER_STATUS_HISTORY;` 4. USER_LIST 테이블 RATING 컬럼 확인: `DESC USER_LIST;` ## 📁 스크립트 설명 | 파일명 | 목적 | 상태 | |--------|------|------| | `001_create_vendor_influencer_mapping_table.sql` | 기본 매핑 테이블 생성 | ✅ | | `002_add_vendor_influencer_mapping_indexes.sql` | 성능 최적화 인덱스 | ✅ | | `003_add_vendor_influencer_mapping_foreign_keys.sql` | 데이터 무결성 외래키 | ✅ | | `004_remove_approved_by_foreign_key.sql` | 외래키 제거 | ✅ | | `006_fix_unique_constraint_fundamental.sql` | 유니크 제약조건 수정 | ✅ | | `007_create_status_history_table.sql` | 상태 이력 테이블 생성 | ✅ | | `008_clear_data_and_drop_status.sql` | 데이터 정리 | ✅ | | `009_safe_truncate_with_fk.sql` | 안전한 데이터 정리 | ✅ | | `010_mariadb_compatible.sql` | MariaDB 호환성 | ✅ | | `011_mariadb_safe_dynamic.sql` | MariaDB 동적 SQL | ✅ | | `012_add_rating_column.sql` | USER_LIST RATING 컬럼 추가 | ✨ **신규** | ## 🔄 롤백 방법 문제 발생 시 역순으로 롤백: ```bash # RATING 컬럼 제거 ALTER TABLE USER_LIST DROP COLUMN RATING; DROP INDEX idx_user_rating ON USER_LIST; # 기타 테이블 롤백은 기존 문서 참조 ``` ## ✅ 검증 명령어 ```sql -- 1. 테이블 존재 확인 SHOW TABLES LIKE '%VENDOR_INFLUENCER%'; -- 2. 컬럼 구조 확인 DESC VENDOR_INFLUENCER_MAPPING; DESC VENDOR_INFLUENCER_STATUS_HISTORY; DESC USER_LIST; -- 3. RATING 컬럼 확인 SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'USER_LIST' AND COLUMN_NAME = 'RATING'; -- 4. 인덱스 확인 SHOW INDEX FROM VENDOR_INFLUENCER_MAPPING; SHOW INDEX FROM USER_LIST; ``` --- **최종 업데이트:** 2024-12-22 **총 스크립트 수:** 11개 **실행 예상 시간:** 5-10분