# 5130 → SAM 마이그레이션 진행 상황 > 마지막 업데이트: 2025-12-21 > 현재 Phase: **Phase 5 완료** --- ## 전체 진행률 | Phase | 상태 | 진행률 | |-------|------|--------| | Phase 1: 소스 분석 (5130) | ✅ 완료 | 100% | | Phase 2: 타겟 분석 (SAM) | ✅ 완료 | 100% | | Phase 3: 매핑 설계 | ✅ 완료 | 100% | | Phase 4: 마이그레이션 개발 | ✅ 완료 | 100% | | Phase 5: 실행 및 검증 | ✅ 완료 | 100% | --- ## 핵심 설정 | 항목 | 값 | |------|-----| | **tenant_id** | 287 (경동기업) | | **제외** | 주일기업 (별도 테넌트로 추후 진행) | --- ## Phase 1: 소스 분석 (5130) ✅ 완료 ### 핵심 발견 사항 | 테이블 | 레코드 | 역할 | |--------|--------|------| | models | 18 | 완제품 (KSS01, KSE01) | | parts | 36 | 부품 | | parts_sub | 117 | 원자재 | | BDmodels | 59 | 부품 (savejson에 BOM 포함) | **산출물:** `phase-1-source-analysis/5130-item-schema.md` --- ## Phase 2: 타겟 분석 (SAM) ✅ 완료 ### 핵심 발견 사항 - `items` 통합 테이블 (item_type으로 구분) - `item_id_mappings` 레거시 ID 추적용 - `entity_relationships` 관계 정의 **산출물:** `phase-2-target-analysis/sam-item-schema.md` --- ## Phase 3: 매핑 설계 ✅ 완료 ### 체크리스트 - [x] 상세 필드 매핑 테이블 작성 - [x] 타입 변환 규칙 정의 - [x] tenant_id 할당 전략 (287 - 경동기업) - [x] 코드 생성 규칙 정의 - [x] 관계 매핑 설계 ### 테이블 매핑 요약 | 5130 | → | SAM items | item_type | |------|---|-----------|-----------| | models (18) | → | items | FG (완제품) | | parts (36) | → | items | PT (부품) | | parts_sub (117) | → | items | RM (원자재) | | BDmodels (59) | → | items | PT (부품) | | BDmodels.savejson (195) | → | items | RM (원자재) | ### 관계 매핑 | 5130 관계 | → | SAM | |-----------|---|-----| | parts.model_id → models | → | entity_relationships | | parts_sub.part_id → parts | → | entity_relationships | | BDmodels → savejson items | → | entity_relationships | **산출물:** `phase-3-mapping/field-mapping.md` --- ## Phase 4: 마이그레이션 개발 ✅ 완료 ### 체크리스트 - [x] 마이그레이션 스크립트 설계 - [x] 마이그레이션 순서 확정 - [x] Laravel Command 작성 (`php artisan migrate:5130-items`) - [x] 검증 쿼리 작성 - [x] 롤백 스크립트 작성 ### 마이그레이션 순서 (실행 완료) 1. ✅ models → items (FG) 2. ✅ parts → items (PT) 3. ✅ parts_sub → items (RM) 4. ✅ BDmodels → items (PT) 5. ✅ BDmodels.savejson → items (RM) + entity_relationships 6. ✅ models↔parts 관계 → entity_relationships 7. ✅ parts↔parts_sub 관계 → entity_relationships 8. ✅ item_id_mappings 기록 **산출물:** `api/app/Console/Commands/Migrate5130Items.php` --- ## Phase 5: 실행 및 검증 ✅ 완료 ### 체크리스트 - [x] 테스트 환경 마이그레이션 - [x] 데이터 정합성 검증 - [x] 오류 수정 및 재시도 - [x] 최종 마이그레이션 - [x] 완료 리포트 작성 ### 최종 마이그레이션 결과 #### items 테이블 (tenant_id=287) | item_type | 건수 | 설명 | |-----------|------|------| | CS | 5 | 기존 데이터 | | FG | 20 | 완제품 (models 18 + 기존 2) | | PT | 100 | 부품 (parts 36 + BDmodels 59 + 기존 5) | | RM | 314 | 원자재 (parts_sub 117 + BDmodels_bom 195 + 기존 2) | | SM | 2 | 기존 데이터 | | **Total** | **441** | | #### 5130 출처 items 상세 | source_table | 건수 | |--------------|------| | models | 18 | | parts | 36 | | parts_sub | 117 | | BDmodels | 59 | | BDmodels_bom | 195 | | **Total** | **425** | #### item_id_mappings | source_table | 건수 | |--------------|------| | models | 18 | | parts | 36 | | parts_sub | 117 | | BDmodels | 59 | | materials | 354 (기존) | | products | 6 (기존) | | **Total** | **590** | #### entity_relationships (tenant_id=287) | 관계 유형 | 건수 | |-----------|------| | models ↔ parts | 36 | | parts ↔ parts_sub | 117 | | BDmodels ↔ BDmodels_bom | 195 | | 기타 | 91 | | **Total** | **439** | --- ## 명령어 레퍼런스 ```bash # 전체 마이그레이션 (dry-run) php artisan migrate:5130-items --dry-run # 전체 마이그레이션 (실제 실행) php artisan migrate:5130-items --tenant_id=287 # 특정 단계만 실행 php artisan migrate:5130-items --step=models php artisan migrate:5130-items --step=parts php artisan migrate:5130-items --step=parts_sub php artisan migrate:5130-items --step=bdmodels php artisan migrate:5130-items --step=relations # 롤백 php artisan migrate:5130-items --rollback ``` --- ## 작업 로그 | 날짜 | 작업 내용 | 결과 | |------|----------|------| | 2025-12-21 | 마스터 플랜 문서 작성 | ✅ 완료 | | 2025-12-21 | Phase 1: 5130 DB 스키마 분석 | ✅ 완료 | | 2025-12-21 | Phase 2: SAM DB 스키마 분석 | ✅ 완료 | | 2025-12-21 | Phase 3: 필드 매핑 설계 (tenant_id=287) | ✅ 완료 | | 2025-12-21 | Phase 4: Migrate5130Items Command 개발 | ✅ 완료 | | 2025-12-21 | Phase 5: 마이그레이션 실행 및 검증 | ✅ 완료 | --- ## 다음 단계 (선택적) 1. **주일기업 마이그레이션**: 별도 테넌트로 동일 프로세스 적용 2. **데이터 검증 UI**: SAM MNG에서 마이그레이션된 품목 조회/수정 기능 3. **BOM 관계 활용**: 마이그레이션된 entity_relationships를 활용한 BOM 조회 API