백엔드

Spring Boot ddl_auto 옵션

난감 2023. 9. 30. 17:53
728x90

회원가입하고 서버를 재시작하면 자꾸 데이터베이스가 초기화돼서 처음에는 h2-database 때문인줄 알았는데, mariaDB로 바꿔도 같은 문제가 발생했다.

application.yml을 확인해보니 spring.jpa.hibernate.ddl-auto : create-drop으로 설정되어있었고, 이것때문에 재시작할 때마다 db가 초기화되는 거였다.

 

DDL AUTO 옵션 (spring.jpa.hibernate.ddl-auto)

spring.jpa.hibernate.ddl-auto 옵션은 Jpa의 Database 초기화 전략을 의미한다. 설정 가능한 값은 아래 5가지이다.

  • none : 아무것도 실행하지 않음
  • create : 기존 테이블 삭제 후 다시 생성
  • create-drop : create 옵션 + 종료 시점에 테이블 drop
  • update : 변경된 스키마를 적용
  • validate : 엔티티와 테이블 정상 매핑 확인
주의할 점
  • 운영 장비에서는 절대 crate, create-drop, update 사용하면 안된다.
  • 개발 초기 단계는 create 또는 update
  • 테스트 서버는 update 또는 validate
  • 스테이징과 운영 서버는 validate 또는 none
반응형