- JPA의 ddl 옵션2025년 01월 24일 09시 34분 39초에 업로드 된 글입니다.작성자: 민발자728x90
JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까?
ddl-auto 하이버네이트와 같은 JPA 구현체를 사용할 때 데이터베이스 스키마 관리 제어하는 설정
application.yml application.properties 파일에서 설정 가능
다양한 값에 따라 데이터베이스 스키마에 대한 다른 동작을 수행
옵션
none 데이터베이스 스키마 관련된 어떤 작업도 수행하지 않음. 데이터베이스 스키마를 수동으로 관리하고 싶을 때 유용, 프로덕션 환경에서 주로 사용
validate 애플리케이션이 시작될 때 엔티티 매칭이 데이터베이스 스키마와 일치하는지 검증, 스키마 변경은 따로 수행하지 않음. 프로덕션 환경에서 엔티티와 데이터베이스 스키마가 일치하는지 확인하고 싶을 때 사용
update 엔티티 매핑과 데이터베이스 스키마를 비교하여 필요한 경우 스키마를 업데이트함. 기존 데이터는 유지되지만 새로운 엔티티나 변경된 엔티티 필드는 스키마에 반영. 해당 옵션은 엔티티에 변경이 발생할 때 자동으로 스키마를 업데이트 하고 싶을 때 유용. 프로덕션 환경에서 스키마 변경을 방지하기 위해 주의 필요
create 애플리케이션이 시작될 때 기존 스키마 삭제하고 새로 생성. 데이터가 모두 삭제되면 엔티티 매핑 기반으로 새로운 스키마 생성. 개발 초기에 빈 데이터베이스 스키마를 반복적으로 생성해야 할 때 유용함. 기존 데이터가 모두 삭제되므로 프로덕션 환경에서는 사용하지 않음
create-drop create와 유사하지만 애플리케이션이 종료될 때 스키마를 삭제하는다는 점이 다름. 해당 옵션은 테스트 환경에서 일시적인 데이터베이스 스키마가 필요한 경우 유용. 매 테스트 실행 시마다 깨끗한 데이터베이스 상태 유지하고 할 때 사용. 프로덕션 환경에서는 사용하지 않음
프로덕션 환경에서 스키마 변경?
스키마 변경이 필요할 때는 적절한 데이터베이스 마이그레이션 도구를 사용하여 제어된 방식으로 스키마 관리. 사용자가 없는 새벽에 스키마 작업을 수동으로 진행하는 것이 더욱 안전
728x90'데브코스 > TIL' 카테고리의 다른 글
엔티티 매니저와 엔티티 상태 (0) 2025.01.27 스프링 부트 매개변수 이름 인식 (0) 2024.12.17 다음글이 없습니다.이전글이 없습니다.댓글