ORM/JPA

JPA를 이용한 데이터베이스 초기화

잔망루피 2022. 3. 31. 21:32
반응형

spring.jpa.generate-ddl = true 또는 false

실행 시 데이터베이스를 초기화하는 기능을 on/off

 

 

spring.jpa.hibernate.ddl-auto

  • none 아무것도 안함
  • create 기존 테이블은 삭제되고 새로 생성한다.
  • validate 변경된 스키마가 있으면 변경된 점을 출력. DDL을 수정하지 않음.
  • update 테이블과 엔티티를 비교해서 변경된 스키마 적용
  • create-drop 실행 시 테이블을 drop 및 생성, 종료 시 테이블을 drop

 

 

🟢 주의사항

  • 개발 초기 단계는 create 또는 update를 쓴다.
  • 테스트 서버는 update 또는 validate를 쓴다.
  • 스테이징과 운영 서버는 validate 또는 none을 쓴다.
  • 운영 서버에서 create, create-drop, update
  • 개발 서버나 개발 단계에서만 create, create-drop, update처럼 DDL을 수정하는 옵션을 사용한다.
  • embeded 데이터베이스는(hsqldb, h2, derby) 기본값이 create-drop 
  • 그렇지 않은 데이터베이스는 기본값이 none

 

 

 


참고 👇

https://docs.spring.io/spring-boot/docs/1.1.0.M1/reference/html/howto-database-initialization.html

 

59. Database initialization

An SQL database can be initialized in different ways depending on what your stack is. Or of course you can do it manually as long as the database is a separate process. 59.2 Initialize a database using Hibernate You can set spring.jpa.hibernate.ddl-auto e

docs.spring.io

 

https://pravusid.kr/java/2018/10/10/spring-database-initialization.html

 

Spring에서 JPA / Hibernate 초기화 전략 · ID PRAVUS

Spring-data-JPA와 DBMS를 연결해서 사용할 때 간편히 개발환경의 변경사항을 적용하여 테스트 할 수 있다. 특히 테스트를 위한 in-memory Database인 H2 Database를 염두에 둔 DB 초기화 전략에서 신경쓸 점을

pravusid.kr

 

반응형