ddl-auto 속성
- DB 스키마 생성 및 갱신과 관련된 설정
- 개발자가 어플리케이션을 실행할 때 JPA가 데이터베이스 스키마를 자동으로 생성, 갱신 또는 유지하도록 할지를 결정함
spring.jpa.hibernate.ddl-auto=update
create
- 애플리케이션을 실행할 때마다 DB 스키마를 새로 생성
- 만약 DB에 테이블이 있는 상태라면 기존 테이블을 모두 삭제하고 새로 생성함
create-drop
- create와 같이 애플리케이션을 실행할 때마다 DB 스키마를 새로 생성하지만 애플리케이션이 종료되면 스키마를 다시 삭제함
- 주로 테스트 환경에서 사용하며, 애플리케이션의 실행 사이에 스키마를 생성하는 것이 효율적일 때 유용
update
- 현재 DB 스키마를 기준으로 JPA 엔티티의 변경 사항을 추적하여 변경된 사항만 DB에 반영
- 주로 개발 및 테스트 환경에서 사용
validate
- DB 스키마와 JPA 엔티티를 서로 비교하여 일치하지 않는 경우 경고를 발생시킴
- 서로 일치하지 않는다고 해서 스키마를 수정하는 게 아니라 유효성만 검사하는 것
- 주로 운영 환경에서 사용
none
- JPA가 DB 스키마에 아무런 영향을 끼치지 않음
ddl-auto 주의사항
- 운영 시에 create나 create-drop를 적용할 경우 DB 테이블이 모두 삭제됨
- 운영 시에 update를 적용할 경우 새로 추가된 컬럼이 Not Null 속성을 갖고 있다면 해당 변경사항이 반영되지 않은 버전 배포 시 테이블에 데이터가 추가되지 않을 수 있음
단계별 ddl-auto 권장사항
- 개발 초기 단계 또는 로컬에서 테스트 단계 = create 또는 update
- 테스트 단계 = update 또는 validate
- 운영 단계 = validate 또는 none
'Spring > Spring Data JPA' 카테고리의 다른 글
JPQL(Java Persistence Query Language) (1) | 2024.04.05 |
---|---|
@AllArgsConstructor 지양 이유 및 대책 (0) | 2024.02.26 |
댓글