docs:데이터베이스 아키텍처 규칙 추가

- 모든 마이그레이션은 API 프로젝트에서만 관리
- MNG database/migrations 폴더에 파일 생성 금지
- 마이그레이션 실행은 sam-api-1 컨테이너에서만

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
pro
2026-01-26 12:53:55 +09:00
parent 9a2948da6c
commit a8e5e2fba0

View File

@@ -56,6 +56,52 @@
--- ---
## 데이터베이스 아키텍처 (필수 규칙)
> **경고: 이 규칙을 반드시 준수하세요!**
### 핵심 원칙
**모든 데이터베이스 관련 파일은 API 프로젝트에서만 관리합니다.**
| 항목 | API (`/home/aweso/sam/api`) | MNG (`/home/aweso/sam/mng`) |
|------|----------------------------|----------------------------|
| 마이그레이션 | ✅ 여기에 생성 | ❌ 생성 금지 |
| 시더 | ✅ 여기에 생성 | ⚠️ MNG 전용만 허용 |
| 팩토리 | ✅ 여기에 생성 | ❌ 생성 금지 |
### 금지 사항
```
❌ /home/aweso/sam/mng/database/migrations/ 에 파일 생성 금지
❌ MNG에서 테이블 생성/수정 마이그레이션 작성 금지
```
### 허용 사항
```
✅ /home/aweso/sam/api/database/migrations/ 에 모든 마이그레이션 생성
✅ MNG에서는 MngMenuSeeder 같은 MNG 전용 시더만 허용
```
### 마이그레이션 실행
```bash
# 마이그레이션은 반드시 API 컨테이너에서 실행
docker exec sam-api-1 php artisan migrate
# MNG 컨테이너에서 마이그레이션 실행 금지
# docker exec sam-mng-1 php artisan migrate ← 사용하지 않음
```
### 이유
- MNG: 프론트엔드/관리자 화면 담당 (컨트롤러, 뷰, 라우트)
- API: 백엔드/데이터베이스 담당 (마이그레이션, 모델 정의, API)
- 단일 DB를 두 프로젝트가 공유하므로 마이그레이션은 한 곳에서만 관리
---
## Docker 환경 (필수 인지) ## Docker 환경 (필수 인지)
> **중요: 로컬 개발 환경은 Docker 기반입니다!** > **중요: 로컬 개발 환경은 Docker 기반입니다!**
@@ -86,8 +132,8 @@ docker exec sam-api-1 php artisan <명령어>
# 예시: 시더 실행 # 예시: 시더 실행
docker exec sam-mng-1 php artisan db:seed --class=MngMenuSeeder docker exec sam-mng-1 php artisan db:seed --class=MngMenuSeeder
# 예시: 마이그레이션 실행 # 예시: 마이그레이션 실행 (API에서만!)
docker exec sam-mng-1 php artisan migrate docker exec sam-api-1 php artisan migrate
# 예시: 캐시 클리어 # 예시: 캐시 클리어
docker exec sam-mng-1 php artisan cache:clear docker exec sam-mng-1 php artisan cache:clear
@@ -95,7 +141,7 @@ docker exec sam-mng-1 php artisan cache:clear
### 체크리스트 (명령 실행 시) ### 체크리스트 (명령 실행 시)
- [ ] `php artisan` 명령 → `docker exec sam-mng-1 php artisan` 사용 - [ ] `php artisan` 명령 → `docker exec sam-mng-1 php artisan` 또는 `sam-api-1` 사용
- [ ] `composer` 명령 → `docker exec sam-mng-1 composer` 사용 - [ ] `composer` 명령 → `docker exec sam-mng-1 composer` 또는 `sam-api-1` 사용
- [ ] DB 시더 실행 필요 시 → Docker를 통해 실행 - [ ] DB 시더 실행 필요 시 → Docker를 통해 실행
- [ ] 마이그레이션 필요 시 → Docker를 통해 실행 - [ ] **마이그레이션은 반드시 API에서 실행**`docker exec sam-api-1 php artisan migrate`