docs:CLAUDE.md 메뉴 관리 규칙 추가 (시더 실행 금지)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
53
CLAUDE.md
53
CLAUDE.md
@@ -122,6 +122,59 @@ docker exec sam-api-1 php artisan migrate
|
||||
|
||||
---
|
||||
|
||||
## 메뉴 관리 규칙 (필수)
|
||||
|
||||
> **경고: 메뉴 시더(Seeder)를 절대 실행하지 마세요!**
|
||||
|
||||
### 배경
|
||||
|
||||
메뉴 시더 실행 시 부서별 권한 설정(permission_overrides)이 초기화되는 문제가 반복 발생합니다.
|
||||
메뉴 ID가 변경되면 기존 부서-메뉴 권한 매핑이 깨지기 때문입니다.
|
||||
|
||||
### 금지 사항
|
||||
|
||||
```
|
||||
❌ php artisan db:seed --class=MngMenuSeeder 실행 금지
|
||||
❌ php artisan db:seed --class=*MenuSeeder 실행 금지
|
||||
❌ 메뉴 시더 파일 생성 금지
|
||||
❌ 메뉴 데이터를 일괄 삭제 후 재생성하는 방식 금지
|
||||
```
|
||||
|
||||
### 메뉴 변경 시 올바른 절차
|
||||
|
||||
메뉴 추가/수정/삭제/이동이 필요할 때는 **사용자에게 수동 실행 안내**를 제공합니다:
|
||||
|
||||
1. **tinker 명령어를 안내** (사용자가 직접 실행)
|
||||
2. **또는 SQL 쿼리를 안내** (사용자가 phpMyAdmin 등에서 직접 실행)
|
||||
3. **절대 시더를 만들어 실행하지 않음**
|
||||
|
||||
### 안내 예시
|
||||
|
||||
```
|
||||
메뉴를 추가하려면 아래 명령을 서버에서 실행해 주세요:
|
||||
|
||||
ssh sam-server "cd /home/webservice/mng && php artisan tinker --execute=\"
|
||||
App\\Models\\Commons\\Menu::create([
|
||||
'tenant_id' => 1,
|
||||
'parent_id' => <부모ID>,
|
||||
'name' => '새 메뉴',
|
||||
'url' => '/new-menu',
|
||||
'icon' => 'icon-name',
|
||||
'sort_order' => 1,
|
||||
'is_active' => true,
|
||||
]);
|
||||
\""
|
||||
```
|
||||
|
||||
### 체크리스트 (메뉴 변경 요청 시)
|
||||
|
||||
- [ ] 시더 파일 생성하지 않음
|
||||
- [ ] 시더 실행하지 않음
|
||||
- [ ] tinker 또는 SQL로 개별 레코드만 수정
|
||||
- [ ] 변경 후 부서 권한 설정이 유지되는지 확인
|
||||
|
||||
---
|
||||
|
||||
## Docker 환경 (필수 인지)
|
||||
|
||||
> **중요: 로컬 개발 환경은 Docker 기반입니다!**
|
||||
|
||||
Reference in New Issue
Block a user