# COMPANY_11 테스트 데이터 정리 가이드 ## 📋 개요 메뉴 복사 기능을 재테스트하기 위해 COMPANY_11의 복사된 데이터를 삭제하는 스크립트입니다. ## ⚠️ 중요 사항 - **보존되는 데이터**: 권한 그룹(`authority_master`, `authority_sub_user`), 사용자 정보(`user_info`) - **삭제되는 데이터**: 메뉴, 화면, 레이아웃, 플로우, 코드 - **안전 모드**: `cleanup_company_11_for_test.sql`은 ROLLBACK으로 테스트만 가능 - **실행 모드**: `cleanup_company_11_execute.sql`은 즉시 COMMIT ## 🚀 실행 방법 ### 방법 1: Docker 컨테이너에서 직접 실행 (권장) ```bash # 1. 테스트 실행 (롤백 - 실제 삭제 안 됨) cd /Users/kimjuseok/ERP-node docker exec -i erp-node-db-1 psql -U postgres -d ilshin < db/scripts/cleanup_company_11_for_test.sql # 2. 실제 삭제 실행 docker exec -i erp-node-db-1 psql -U postgres -d ilshin < db/scripts/cleanup_company_11_execute.sql ``` ### 방법 2: DBeaver 또는 pgAdmin에서 실행 1. `db/scripts/cleanup_company_11_for_test.sql` 파일 열기 2. 전체 스크립트 실행 (롤백되어 안전) 3. 결과 확인 후 `cleanup_company_11_execute.sql` 실행 ### 방법 3: psql 직접 접속 ```bash # 1. 컨테이너 접속 docker exec -it erp-node-db-1 psql -U postgres -d ilshin # 2. SQL 복사 붙여넣기 # (cleanup_company_11_execute.sql 내용 복사) ``` ## 📊 삭제 대상 | 항목 | 테이블명 | 삭제 여부 | |------|----------|-----------| | 메뉴 | `menu_info` | ✅ 삭제 | | 메뉴 권한 | `rel_menu_auth` | ✅ 삭제 | | 화면 정의 | `screen_definitions` | ✅ 삭제 | | 화면 레이아웃 | `screen_layouts` | ✅ 삭제 | | 화면-메뉴 할당 | `screen_menu_assignments` | ✅ 삭제 | | 플로우 정의 | `flow_definition` | ✅ 삭제 | | 플로우 스텝 | `flow_step` | ✅ 삭제 | | 플로우 연결 | `flow_step_connection` | ✅ 삭제 | | 코드 카테고리 | `code_category` | ✅ 삭제 | | 코드 정보 | `code_info` | ✅ 삭제 | | **권한 그룹** | `authority_master` | ❌ **보존** | | **권한 멤버** | `authority_sub_user` | ❌ **보존** | | **사용자** | `user_info` | ❌ **보존** | ## 🔍 삭제 순서 (외래키 제약 고려) ``` 1. screen_layouts (화면 레이아웃) 2. screen_menu_assignments (화면-메뉴 할당) 3. screen_definitions (화면 정의) 4. rel_menu_auth (메뉴 권한) 5. menu_info (메뉴) 6. flow_step (플로우 스텝) 7. flow_step_connection (플로우 연결) 8. flow_definition (플로우 정의) 9. code_info (코드 정보) 10. code_category (코드 카테고리) ``` ## ✅ 실행 후 확인 스크립트 실행 후 다음과 같이 표시됩니다: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ 삭제 완료! 남은 데이터: - 메뉴: 0 개 - 화면: 0 개 - 권한 그룹: 1 개 (보존됨) - 사용자: 1 개 (보존됨) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ 정리 완료! 메뉴 복사 테스트 준비됨 ``` ## 🧪 테스트 시나리오 1. **데이터 정리** ```bash docker exec -i erp-node-db-1 psql -U postgres -d ilshin < db/scripts/cleanup_company_11_execute.sql ``` 2. **메뉴 복사 실행** - 프론트엔드에서 원본 메뉴 선택 - "복사" 버튼 클릭 - 대상 회사: COMPANY_11 선택 - 복사 실행 3. **복사 결과 확인** - COMPANY_11 사용자(copy)로 로그인 - 사용자 메뉴에 복사된 메뉴 표시 확인 - 버튼 클릭 시 모달 화면 정상 열림 확인 - 플로우 기능 정상 작동 확인 ## 🔄 재테스트 재테스트가 필요하면 다시 정리 스크립트를 실행하세요: ```bash # 빠른 재테스트 docker exec -i erp-node-db-1 psql -U postgres -d ilshin < db/scripts/cleanup_company_11_execute.sql ``` ## 📝 참고 - **백업**: 중요한 데이터가 있다면 먼저 백업하세요 - **권한**: 사용자 `copy`와 권한 그룹 `복사권한`은 보존됩니다 - **로그**: 백엔드 로그에서 복사 진행 상황을 실시간으로 확인할 수 있습니다