69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
|
|
# 변경 내용 요약 - 경동기업 품목/단가 마이그레이션 Phase 1.0
|
||
|
|
|
||
|
|
**날짜:** 2026-01-28
|
||
|
|
**작업자:** Claude Code
|
||
|
|
**관련 문서:** docs/plans/kd-items-migration-plan.md
|
||
|
|
|
||
|
|
## 📋 변경 개요
|
||
|
|
|
||
|
|
경동기업(tenant_id=287) 레거시 DB(chandj)에서 SAM DB(samdb)로 품목/단가 데이터 마이그레이션을 위한 Seeder 생성
|
||
|
|
|
||
|
|
## 📁 추가된 파일
|
||
|
|
|
||
|
|
| 파일 | 설명 |
|
||
|
|
|------|------|
|
||
|
|
| `api/database/seeders/Kyungdong/KyungdongItemSeeder.php` | 경동기업 품목/단가 마이그레이션 Seeder |
|
||
|
|
|
||
|
|
## 🔧 상세 변경 사항
|
||
|
|
|
||
|
|
### 1. KyungdongItemSeeder.php 생성
|
||
|
|
|
||
|
|
**기능:**
|
||
|
|
- chandj.KDunitprice (601건) → samdb.items 마이그레이션
|
||
|
|
- items 기반 → samdb.prices 마이그레이션
|
||
|
|
- 기존 tenant_id=287 데이터 삭제 후 재생성
|
||
|
|
|
||
|
|
**주요 로직:**
|
||
|
|
```php
|
||
|
|
// item_div → item_type 매핑
|
||
|
|
'[제품]' => 'FG' // 완제품
|
||
|
|
'[상품]' => 'FG' // 완제품
|
||
|
|
'[반제품]' => 'PT' // 부품
|
||
|
|
'[부재료]' => 'SM' // 부자재
|
||
|
|
'[원재료]' => 'RM' // 원자재
|
||
|
|
'[무형상품]' => 'CS' // 소모품
|
||
|
|
```
|
||
|
|
|
||
|
|
**발견된 이슈 및 해결:**
|
||
|
|
- 레거시 DB의 `is_deleted` 컬럼이 `0`이 아닌 `NULL`로 활성 상태 표시
|
||
|
|
- `where('is_deleted', 0)` → `whereNull('is_deleted')` 수정
|
||
|
|
|
||
|
|
## ✅ 실행 방법
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Docker 컨테이너 내부에서 실행
|
||
|
|
docker exec sam-api-1 php artisan db:seed --class="Database\\Seeders\\Kyungdong\\KyungdongItemSeeder"
|
||
|
|
|
||
|
|
# 또는 Docker 환경에서 직접 실행
|
||
|
|
cd /var/www/html && php artisan db:seed --class="Database\\Seeders\\Kyungdong\\KyungdongItemSeeder"
|
||
|
|
```
|
||
|
|
|
||
|
|
## 📊 예상 결과
|
||
|
|
|
||
|
|
| 테이블 | 작업 | 예상 건수 |
|
||
|
|
|--------|------|----------|
|
||
|
|
| items | DELETE (기존) | ~10,472건 |
|
||
|
|
| items | INSERT (신규) | ~601건 |
|
||
|
|
| prices | DELETE (기존) | ~86건 |
|
||
|
|
| prices | INSERT (신규) | ~601건 |
|
||
|
|
|
||
|
|
## ⚠️ 주의사항
|
||
|
|
|
||
|
|
1. **기존 데이터 삭제됨**: tenant_id=287의 모든 items, prices 삭제
|
||
|
|
2. **실행 전 백업 권장**: 중요 데이터는 백업 후 실행
|
||
|
|
3. **Docker 환경 필수**: chandj DB 연결은 Docker 내부에서만 가능 (sam-mysql-1 호스트명)
|
||
|
|
|
||
|
|
## 🔗 관련 문서
|
||
|
|
|
||
|
|
- [kd-items-migration-plan.md](../plans/kd-items-migration-plan.md) - 전체 마이그레이션 계획
|
||
|
|
- [kd-orders-migration-plan.md](../plans/kd-orders-migration-plan.md) - 입고/재고/주문 마이그레이션 (연관)
|