2025-09-24 21:49:39 +09:00
|
|
|
# SAM API 저장소 작업 현황
|
2025-09-19 22:12:09 +09:00
|
|
|
|
2025-09-30 23:31:14 +09:00
|
|
|
## 2025-09-30 (월) - DB 연결 환경변수 오버라이딩 설정
|
2025-09-19 22:12:09 +09:00
|
|
|
|
|
|
|
|
### 주요 작업
|
2025-09-30 23:31:14 +09:00
|
|
|
- 로컬/Docker 환경 DB 연결 오버라이딩 설정
|
|
|
|
|
|
|
|
|
|
### 수정된 파일
|
|
|
|
|
|
|
|
|
|
#### 환경 설정
|
|
|
|
|
- `.env` (라인 29) - DB_HOST 로컬 설정 (127.0.0.1)
|
|
|
|
|
- 기존: `DB_HOST=${DB_HOST:-mysql}` (환경변수 파싱 오류)
|
|
|
|
|
- 변경: `DB_HOST=127.0.0.1` (로컬 MySQL 컨테이너 접근)
|
|
|
|
|
- Docker 환경은 docker-compose.yml에서 자동 오버라이드
|
|
|
|
|
|
|
|
|
|
### 작업 내용
|
|
|
|
|
|
|
|
|
|
#### DB 연결 오류 해결
|
|
|
|
|
**문제**:
|
|
|
|
|
- `.env` 파일의 `${DB_HOST:-mysql}` 형식이 Laravel에서 리터럴 문자열로 인식
|
|
|
|
|
- 에러: `php_network_getaddresses: getaddrinfo for ${DB_HOST failed`
|
|
|
|
|
|
|
|
|
|
**해결**:
|
|
|
|
|
1. `.env`: `DB_HOST=127.0.0.1` (로컬 기본값)
|
|
|
|
|
2. `docker-compose.yml`: 환경변수 `DB_HOST=mysql`로 오버라이드
|
|
|
|
|
3. 로컬/Docker 모두 정상 연결 확인
|
|
|
|
|
|
|
|
|
|
#### 환경변수 오버라이딩 구조
|
|
|
|
|
**로컬 실행 시** (`php artisan serve`):
|
|
|
|
|
- `.env`의 `DB_HOST=127.0.0.1` 사용
|
|
|
|
|
- 호스트에서 MySQL 컨테이너 포트 3306으로 직접 접근
|
|
|
|
|
|
|
|
|
|
**Docker 컨테이너 실행 시**:
|
|
|
|
|
- docker-compose.yml 환경변수가 `.env` 값을 오버라이드
|
|
|
|
|
- `DB_HOST=mysql`로 컨테이너 간 통신
|
|
|
|
|
- `samnet` 네트워크를 통한 내부 DNS 해석
|
|
|
|
|
|
|
|
|
|
### 품질 검증
|
|
|
|
|
- ✅ 로컬 DB 연결: `php artisan tinker` 정상 작동
|
|
|
|
|
- ✅ Docker DB 연결: 컨테이너 내부 연결 확인
|
|
|
|
|
- ✅ 마이그레이션: `php artisan migrate:status` 성공
|
|
|
|
|
- ✅ Tinker 테스트: `DB::connection()->getPdo()` 성공
|
|
|
|
|
|
|
|
|
|
### 현재 상태
|
|
|
|
|
- ✅ API 서버 정상 작동
|
|
|
|
|
- ✅ 로컬/Docker DB 연결 안정화
|
|
|
|
|
- ✅ Swagger 문서 정상 접근 가능
|
|
|
|
|
- ⚠️ Parameter-based BOM 파일들 untracked 상태 (개발 진행 중)
|
|
|
|
|
|
|
|
|
|
### 참고사항
|
|
|
|
|
- API는 DB 스키마 관리 주체이므로 모든 마이그레이션은 API에서만 실행
|
|
|
|
|
- Admin/Front는 데이터 CRUD만 가능, 테이블/컬럼 작업 금지
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
**업데이트**: 2025-09-30 23:30 KST
|