콘텐츠로 이동

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 문법이 아니라 변경 통제와 실행 기록
  • 마이그레이션/시드는 "가능한 명령"이 아니라 "통제된 절차"로 다뤄야 함