반응형
1. `create`: 새로 생성
어플리케이션을 실행할 때마다 기존 데이터는 삭제하고, 데이터베이스 스키마를 새로 생성하는 전략입니다.
spring.jpa.hibernate.ddl-auto=create
2. `create-drop`: 종료할 때 삭제
데이터베이스 스키마가 새로 생성된다는 점에서는 create 전략과 같지만, create-drop은 어플리케이션이 종료될 때 데이터베이스 스키마도 삭제됩니다.
spring.jpa.hibernate.ddl-auto=create-drop
3. `update`: 변경된 내용만 반영
데이터베이스 스키마에 영향을주지 않고, 엔티티 클래스의 변경사항만을 반영합니다. 즉, 데이터베이스 스키마는이미 존재하는 상태에서엔티티 클래스의 변경을반영합니다.
spring.jpa.hibernate.ddl-auto=update
4. `validate`: Entity-Table 정상 매핑됐는지 유효성 검증
데이터베이스 스키마의 유효성을 검증합니다. 스키마의 오류 여부를 확인하고, 어플리케이션을 실행하지 않습니다.
spring.jpa.hibernate.ddl-auto=validate
5. `none`
JPA가 데이터베이스 스키마를 생성하지도 변경하지도 않고, 말 그대로 아무것도 안하는 것입니다. 이 경우 개발자가 직접 데이터베이스 스키마를 생성 및 관리해주어야 합니다.
spring.jpa.hibernate.ddl-auto=none
사용 용도는 위에 작성한 글만 읽어보셔도 감이 오실거라 생각합니다. 전략을 잘못 지정하여 이전 데이터가 다 날라가는 경우가 생길수도 있기 때문에 주의해서 스키마 관리하는 전략을 세워야합니다.
개발 초기: create, create-drop, update
테스트 서버: update, validate
운영 서버: validate, none
반응형
'Spring Data > JPA' 카테고리의 다른 글
JPA 연관관계 매핑: 객체 간의 관계를 표현하고 데이터베이스에 저장 (0) | 2023.08.18 |
---|---|
JPA 생성 및 수정 날짜 자동 처리를 위한 공통 엔티티 만들기 @MappedSuperclass, @EnableJpaAuditing (1) | 2023.08.17 |
JPA 엔티티 매핑: 객체와 데이터베이스 테이블의 매핑 (0) | 2023.08.17 |
JPA EntityManager와 영속성: JPA의 데이터 관리 이해 (0) | 2023.08.17 |
JPA: 자바 ORM 표준 (0) | 2023.08.17 |