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
'ORM > JPA' 카테고리의 다른 글
[Error] org.hibernate.LazyInitializationException: could not initialize proxy (0) | 2022.07.20 |
---|---|
@JoinColumn (0) | 2022.05.19 |
변경 감지(Dirty Checking) (0) | 2022.05.18 |
[Error] No default constructor for entity (0) | 2022.01.25 |
[Error] java.lang.IllegalStateException (1) | 2021.07.24 |