1월 22일 - JPA - DDL Auto

이성준·2025년 1월 23일

매일메일

목록 보기
3/9

Question

JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요?

Answer

Persistent Context 에 존재하는 Entity 에 대하여 데이터베이스 스키마를 생성해주는 옵션이다.

  • none : 사용하지 않음.
    스키마 자동 생성이 필요하지 않은 실제 서비스 환경에서 사용

  • create : 어플리케이션 실행시, 생성한다.

  • update : Entity 에 변경이 있을 경우, 업데이트

  • create-drop : 어플리케이션 실행시 생성하고, 종료될 때 제거한다.
    테스트 환경과 같이 데이터베이스를 유지할 필요없이 일시적으로 사용할 때 적용

  • ?

Solution

  • none : 데이터베이스 스키마와 관련된 어떠한 작업도 수행하지 않습니다.
    실제 서비스 환경에서 주로 사용

  • validate : 애플리케이션이 시작될 때, 엔티티 매핑이 데이터베이스 스키마와 일치하는지 검증하며 스키마 변경은 따로 수행하지 않습니다.
    실제 서비스 환경에서 엔티티와 데이터베이스 스키마가 일치하는지 확인하는데 사용.

  • update : 엔티티 매핑과 데이터베이스 스키마를 비교하여 필요한 경우 스키마를 업데이트합니다.
    실제 서비스 환경에서는 사용하지 않습니다.

  • create : 애플리케이션이 시작될 때 기존 스키마를 삭제하고 새로 생성합니다. 데이터가 모두 삭제되며 엔티티 매핑을 기반으로 새로운 스키마가 생성됩니다.
    개발 초기와 같이 아직 데이터베이스 스키마가 생성되지 않았을 때 사용.
    실제 서비스 환경에서는 사용하지 않습니다.

  • create-drop은 create와 유사하지만, 애플리케이션이 종료될 때 스키마를 삭제한다는 점이 다릅니다.
    실제 서비스 환경에서는 사용하지 않습니다.

참고

프로덕션 환경에서 스키마 변경은 어떻게 해야할까

profile
기록

0개의 댓글