개요
스프링 부트와 같은 프레임워크에서 Hibernate를 사용할 때, 데이터베이스 스키마를 어떻게 처리할지 설정하는 옵션
종류 | 설명 |
none | Hibernate가 DDL을 생성하거나 실행하지 않는다. 사실상 없는 값이지만 관례상 none으로 사용한다. |
validate | Hibernate가 데이터베이스 스키마와 엔티티 매핑을 검증한다. 데이터베이스 스키마가 엔티티 매핑과 일치하는지 확인하지만, 변경 사항을 적용하지는 않는다. |
update | Hibernate가 엔티티 매핑을 기반으로 기존 데이터베이스 스키마를 업데이트한다. 데이터베이스에 이미 있는 테이블의 데이터는 유지되며, 필요한 변경 사항만 적용된다. |
create | Hibernate가 애플리케이션을 시작할 때 기존 데이터베이스 스키마를 삭제하고 새로 생성한다. 모든 기존 데이터는 삭제된다. |
create-drop | create와 같으나 애플리케이션 종료 시점에 테이블 DROP |
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 스테이징과 운영 서버는 validate 또는 none
- 운영 장비에서는 절대 update, create, create-drop 사용하지 말기!!
→ 하지만 로컬 환경을 제외한 나머지 서버에서는 최대한 직접 쿼리를 날려서 적용하는 것이 가장 좋다 :)
사용 예시
application.properties
spring.jpa.hibernate.ddl-auto=update
application.yaml
spring:
jpa:
hibernate:
ddl-auto: update
반응형