revert: CLAUDE.md DB 마이그레이션 정책 원래대로 복원
This commit is contained in:
51
CLAUDE.md
51
CLAUDE.md
@@ -347,55 +347,43 @@ React 코드가 변경되었습니다. git push 후 Jenkins가 자동 배포합
|
||||
|
||||
> **경고: 이 규칙을 반드시 준수하세요!**
|
||||
|
||||
### 핵심 원칙 (2026-02-27 정책 변경)
|
||||
### 핵심 원칙
|
||||
|
||||
**현재 API/React가 운영 배포 중지 상태이므로, MNG에서도 마이그레이션을 생성하고 실행한다.**
|
||||
**모든 데이터베이스 관련 파일은 API 프로젝트에서만 관리합니다.**
|
||||
|
||||
| 항목 | API (`/home/aweso/sam/api`) | MNG (`/home/aweso/sam/mng`) |
|
||||
|------|----------------------------|----------------------------|
|
||||
| 마이그레이션 | ✅ 여기에 생성 | ✅ MNG 운영 배포에 필요한 것만 허용 |
|
||||
| 마이그레이션 | ✅ 여기에 생성 | ❌ 생성 금지 |
|
||||
| 시더 | ✅ 여기에 생성 | ⚠️ MNG 전용만 허용 |
|
||||
| 팩토리 | ✅ 여기에 생성 | ❌ 생성 금지 |
|
||||
|
||||
### MNG 마이그레이션 규칙
|
||||
### 금지 사항
|
||||
|
||||
```
|
||||
✅ MNG 운영에 필요한 테이블 → MNG database/migrations/ 에 생성
|
||||
✅ API develop에 동일 마이그레이션이 있으면 파일명을 동일하게 유지 (중복 방지)
|
||||
✅ Schema::hasTable() 가드 추가 — 테이블이 이미 있으면 스킵
|
||||
✅ MNG에서 php artisan migrate 실행 가능
|
||||
❌ /home/aweso/sam/mng/database/migrations/ 에 파일 생성 금지
|
||||
❌ MNG에서 테이블 생성/수정 마이그레이션 작성 금지
|
||||
```
|
||||
|
||||
### 중복 방지 패턴 (필수)
|
||||
### 허용 사항
|
||||
|
||||
API와 MNG 모두에 동일 마이그레이션이 존재할 수 있으므로, 반드시 가드를 추가한다:
|
||||
|
||||
```php
|
||||
public function up(): void
|
||||
{
|
||||
if (Schema::hasTable('table_name')) {
|
||||
return;
|
||||
}
|
||||
|
||||
Schema::create('table_name', function (Blueprint $table) {
|
||||
// ...
|
||||
});
|
||||
}
|
||||
```
|
||||
✅ /home/aweso/sam/api/database/migrations/ 에 모든 마이그레이션 생성
|
||||
✅ MNG에서는 MngMenuSeeder 같은 MNG 전용 시더만 허용
|
||||
```
|
||||
|
||||
### 마이그레이션 실행
|
||||
|
||||
```bash
|
||||
# 로컬: API 또는 MNG 컨테이너에서 실행
|
||||
# 로컬: 마이그레이션은 반드시 API 컨테이너에서 실행
|
||||
docker exec sam-api-1 php artisan migrate
|
||||
docker exec sam-mng-1 php artisan migrate
|
||||
|
||||
# 개발 서버: 직접 실행
|
||||
# 개발 서버: Docker 없음, 직접 실행
|
||||
cd /home/webservice/api && php artisan migrate
|
||||
cd /home/webservice/mng && php artisan migrate
|
||||
|
||||
# 운영 서버: MNG에서 --force 플래그 필수 (API 운영 배포 중지)
|
||||
cd /home/webservice/mng && php artisan migrate --force
|
||||
# 운영 서버: --force 플래그 필수 (production 환경)
|
||||
cd /home/webservice/api && php artisan migrate --force
|
||||
|
||||
# MNG에서 마이그레이션 실행 금지 (로컬/서버 모두)
|
||||
```
|
||||
|
||||
### DB 환경 분리
|
||||
@@ -409,10 +397,11 @@ cd /home/webservice/mng && php artisan migrate --force
|
||||
|
||||
> **참고**: `sam_stat`은 API/MNG 모두 `config/database.php`의 별도 connection으로 접속한다.
|
||||
|
||||
### 향후 정리 계획
|
||||
### 이유
|
||||
|
||||
- API가 운영 배포를 재개하면, MNG 마이그레이션을 API로 통합 정리
|
||||
- 동일 파일명 + `Schema::hasTable()` 가드로 중복 실행 방지됨
|
||||
- MNG: 프론트엔드/관리자 화면 담당 (컨트롤러, 뷰, 라우트)
|
||||
- API: 백엔드/데이터베이스 담당 (마이그레이션, 모델 정의, API)
|
||||
- 단일 DB를 두 프로젝트가 공유하므로 마이그레이션은 한 곳에서만 관리
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user