Laravel DB(Eloquent) 운영 기준¶
운영 서버에서 Laravel의 Eloquent, 마이그레이션, 시드 작업을 안전하고 재현 가능한 방식으로 운영하기 위한 기준을 정리함.
1. 기본 원칙¶
- DB 변경은 애플리케이션 배포 절차와 함께 통제함
- 계정/비밀번호 하드코딩 금지
- 운영 DB 작업은 실행 주체/시점/이력을 남김
- 즉흥 스키마 변경을 허용하지 않음
2. 환경 변수 기준¶
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=app_db
DB_USERNAME=app_user
DB_PASSWORD=***
운영 기준:
- root 계정 사용 금지
- 최소 권한 DB 사용자 사용
.env권한 통제 (chmod 640권장)
3. 마이그레이션 실행 기준¶
cd /var/www/[ProjectName]/current
php artisan migrate --force
운영 기준:
- 운영에서는
--force없이 실행하지 않음 - 실행 전 백업/롤백 전략 확인
- 배포와 스키마 변경의 순서를 문서화
4. 시드 작업 기준¶
cd /var/www/[ProjectName]/current
php artisan db:seed --force
운영 기준:
- 시드는 초기 데이터 목적에 한해 사용
- 운영 데이터 수정성 시드는 승인 절차를 거침
- 반복 실행 시 멱등성(idempotent) 검토
5. 운영에서 자주 놓치는 항목¶
- 스키마 변경 후 애플리케이션 코드 동기화 누락
queue작업이 구 스키마를 참조한 채 실행- 인덱스/제약조건 변경 영향도 사전 검토 누락
배포 직후 권장 절차:
php artisan migrate --force
php artisan queue:restart
php artisan config:cache
6. 금지 패턴¶
- 운영 서버에서
tinker로 임의UPDATE/DELETE - 운영 중 수동 SQL 반영 후 문서 미기록
- 스키마 변경과 코드 배포를 분리 실행
7. 운영 점검 명령¶
php artisan migrate:status
php artisan db:show
php artisan queue:failed
점검 명령 결과를 배포 기록과 함께 보관하면 재현성과 감사성이 올라감.
8. 정리¶
- Eloquent 운영의 핵심은 ORM 문법이 아니라 변경 통제와 실행 기록임
- 마이그레이션/시드는 "가능한 명령"이 아니라 "통제된 절차"로 다뤄야 함