데이터베이스 초기화 전략 - DDL AUTO 옵션

개발자·2021년 11월 30일
0
post-thumbnail

application.properties에 추가한 jpa 옵션 중 주의 깊게 봐야 할 설정은 DDL AUTO 옵션이다. spring.jpa.hibernate.ddl-auto 옵션을 통해 애플리케이션 구동 시 JPA의 데이터베이스 초기화 전략을 설정할 수 있다. 총 5개의 옵션이 있다.

  • none : 사용하지 않음
  • create : 기존 테이블 삭제 후 테이블 생성
  • create-drop : 기존 테이블 삭제 후 테이블 생성, 종료 시점에 테이블 삭제
  • update : 변경된 스키마 적용
  • validate : 엔티티와 테이블 정상 매핑 확인

update 옵션에서 컬럼 삭제는 엄청난 문제를 발생시킬 수 있기 때문에 컬럼 추가만 반영된다. 개발 초기에는 create 또는 update 옵션을 이용해서 익숙해지는 데 집중하고 추후에 validate 옵션을 설정해주는 것이 좋다.

스테이징, 운영환경에서는 절대로 create, create-drop, update를 사용하면 안된다. 스테이징과 운영 서버에서는 테이블 생성 및 컬럼 추가, 삭제, 변경은 데이터베이스에서 직접하며, none을 사용하거나 validate를 이용해 정상적인 매핑 관계만 확인해야 한다.

스테이징 환경과 운영환경의 의미


스테이징 환경이란 운영환경과 거의 동일한 환경으로 구성하여, 운영환경에 배포하기 전 여러 가지 기능(성능, 장애 등)을 검증하는 환경이다. 운영환경은 실제 서비스를 운영하는 환경이다.

해당 게시글은 변구훈, 『스프링 부트 쇼핑몰 프로젝트 with JPA』, 로드북, 2021를 참고하여 작성하였습니다.
profile
I DEVELOP THEREFORE, I AM 😄

0개의 댓글