Spring boot (JPA)

툰잭 ㅣ 2023. 5. 11. 18:33

spring.jpa.hibernate.ddl-auto 의 하위 속성

  • none: Hibernate은 DDL 작업을 수행하지 않는다. 즉, 데이터베이스 스키마 변경에 대한 어떠한 작업도 하지 않는다.
  • create: Hibernate은 애플리케이션 시작 시에 데이터베이스 스키마를 생성한다. 이미 해당 이름의 스키마가 존재한다면 먼저 삭제하고 새로운 스키마를 생성한다.
  • create-drop: Hibernate은 애플리케이션 시작 시에 데이터베이스 스키마를 생성한다. 애플리케이션이 종료되면 데이터베이스 스키마를 삭제한다. 개발 및 테스트 시 임시 데이터베이스를 사용할 때 유용하다.
  • validate: Hibernate은 데이터베이스 스키마가 애플리케이션의 엔티티와 일치하는지 유효성을 검사한다. 스키마의 변경이나 생성은 수행하지 않는다 오류가 발생할 수 있으므로 스키마가 이미 존재해야 한다.
  • update: Hibernate은 애플리케이션 시작 시에 데이터베이스 스키마를 확인하고 필요한 경우 변경 사항을 자동으로 수정한다. 기존 테이블이나 컬럼이 변경되면 해당 변경 사항을 데이터베이스에 반영한다. 새로운 테이블을 추가하거나 데이터를 삭제하는 등의 작업은 지원하지 않는다.

위 옵션들은 Hibernate의 자동 DDL 기능을 제어하는 데 사용된다. 개발 및 테스트 환경에서는 create-drop이나 update 옵션이 유용할 수 있고, 프로덕션 환경에서는 주로 validate이나 none 옵션을 사용하는 것이 좋다.