JPA 관련 설정 - spring.jpa.hibernate.ddl-auto에 대해 정리
- none: 'hibernate.ddl-auto=none' 을 설정하면 Hibernate는 데이터베이스 스키마를 자동으로 생성하거나 갱신하지 않음. 즉, 애플리케이션을 실행할 때 데이터베이스의 스키마는 수동으로 관리해야 함
spring.jpa.hibernate.ddl-auto=none
- update: 'hibernate.ddl-auto=update' 는 Hibernate가 엔티티 클래스의 변경 사항을 기반으로 데이터베이스 스키마를 자동으로 갱신하려고 시도. 즉, 새로운 테이블이나 컬럼을 추가하거나 변경된 내용을 반영. 단, 기존 데이터는 유지되고, 새로운 컬럼에 대해서는 기본 값이 할당됨 (기존의 테이블이나 컬럼을 삭제하지는 않음)
spring.jpa.hibernate.ddl-auto=update
- create: 'hibernate.ddl-auto=create'는 Hibernate가 엔티티 클래스를 기반으로 데이터베이스 스키마를 자동으로 생성함. 실행될 때마다 기존 스키마를 삭제하고 새로운 스키마를 생성하므로 주의 필요. 주로 개발 및 테스트 단계에서 사용됨
spring.jpa.hibernate.ddl-auto=create
- create-drop: 'hibernate.ddl-auto=create-drop'은 'create'와 비슷하지만 애플리케이션이 종료될 때 데이터베이스 스키마를 삭제. 주로 테스트 시에 사용됨
spring.jpa.hibernate.ddl-auto=create-drop
- validate: 'hibernate.ddl-auto=validate' 설정은 Hibernate가 실행될 때 데이터베이스 스키마를 자동으로 생성하거나 갱신하지 않고, 대신 현재 데이터베이스 스키마가 엔티티 클래스와 일치하는지 확인함. 즉, 데이터베이스 스키마의 유효성을 검증하는 역할
spring.jpa.hibernate.ddl-auto=validate
개발 및 테스트 환경에서는 'update', 'create', 또는 'create-drop'을 사용할 수 있지만, 운영 환경에서는 'none', 'validate'를 사용하여 스키마 갱신을 방지하고, DBA가 수동으로 데이터베이스 스키마를 관리하도록 하는 것이 좋음
'Spring' 카테고리의 다른 글
Java Spring에서 JWKS(JSON Web Key Set) API 구현 (1) | 2024.01.11 |
---|---|
Spring JPA @Id 사용시 GenerationType (2) | 2023.12.05 |
Spring @RestControllerAdvice 적용 (0) | 2023.11.09 |
Spring Validation 특정 String만 받도록 검증 하기 (0) | 2023.11.09 |
Spring Boot & Thymeleaf 토이 프로젝트 [Course Registration System] (2) | 2022.04.01 |
댓글