반응형
여승철
INTP 개발자
여승철
  • 분류 전체보기 (376)
    • CS (16)
      • 면접 준비 (7)
      • 운영체제 (0)
      • 네트워크 (2)
      • HTTP (6)
      • 스프링(Spring) IoC 컨테이너 (0)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Java (43)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • ETC (11)

블로그 메뉴

  • 홈
  • 태그

인기 글

태그

  • Dao
  • controller
  • HTTP
  • EC2
  • JDBC
  • Spring Batch
  • 이펙티브 자바
  • mybatis
  • 스트림
  • 회원 관리
  • 로그인
  • 환경 세팅
  • 디자인 패턴
  • 맥킨지
  • JSTL
  • servlet
  • jsp
  • 게시판
  • querydsl
  • ubuntu

최근 댓글

최근 글

hELLO· Designed By 정상우.
여승철

INTP 개발자

JPA ddl-auto: 데이터베이스 스키마 자동 생성 전략
Spring Data/JPA

JPA ddl-auto: 데이터베이스 스키마 자동 생성 전략

2023. 8. 17. 16:19
반응형

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
    여승철
    여승철

    티스토리툴바