From fc97dfe45431c7c18a3320e932b179eaef116fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 27 Feb 2026 09:30:10 +0900 Subject: [PATCH] =?UTF-8?q?revert:=20CLAUDE.md=20DB=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=EA=B7=B8=EB=A0=88=EC=9D=B4=EC=85=98=20=EC=A0=95=EC=B1=85=20?= =?UTF-8?q?=EC=9B=90=EB=9E=98=EB=8C=80=EB=A1=9C=20=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 51 ++++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 04aa16c..582decf 100644 --- a/CLAUDE.md +++ b/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를 두 프로젝트가 공유하므로 마이그레이션은 한 곳에서만 관리 ---