728x90
- none: 아무것도 실행하지 않는다 (대부분의 DB에서 기본값이다)
- create-drop: SessionFactory가 시작될 때 drop및 생성을 실행하고, SessionFactory가 종료될 때 drop을 실행한다 (in-memory DB의 경우 기본값이다)
- create: SessionFactory가 시작될 때 데이터베이스 drop을 실행하고 생성된 DDL을 실행한다
- update: 변경된 스키마를 적용한다
(SessionFactory 연결된 DB와 비교하여 추가된 항목은 추가 만약 같은 변수명이면 오류발생) - validate: 변경된 스키마가 있다면 변경점을 출력하고 애플리케이션을 종료한다
(SessionFactory 시작시 객체구성과 스키마가 다르다면 예외 발생)
오류가 발생해도 서버 시작하기
Spring JDBC initializer 동작시 fail-fast이므로, 스크립트에서 문제가 발생하면 어플리케이션 동작이 실패한다.
spring.datasource.continue-on-error 설정값(기본값: false)을 true로 변경하여 종료되지 않게 할 수 있다.
출처 : 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
주의할 점
- 운영 장비에서는 절대 crate, create-drop, update 사용하면 안된다.
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 스테이징과 운영 서버는 validate 또는 none
하지만 로컬 환경을 제외한 나머지 서버에서는 최대한 직접 쿼리를 날려서 적용하는 것이 가장 좋다.
출처 : https://smpark1020.tistory.com/140
ddl-auto 옵션 관련 주의할 점!!!!!!!!!
얼마전에 개발바닥 호돌맨님의 재난급 서버 장애내고 개발자 인생 끝날뻔 한 썰을 보게 되었다. 나처럼 JPA를 많이 안써본 사람들이 보면 아주 도움될 영상이다🤣🤣 결론은 spring.jpa.hibernate.ddl-a
smpark1020.tistory.com
'사소한 Tip과 개념들' 카테고리의 다른 글
toString() vs String.valueOf() (0) | 2022.11.13 |
---|---|
.config 파일이란 (0) | 2022.11.03 |
CI/CD와 툴 (0) | 2022.11.02 |
스레드 기초 유도원님 강의, 책 추천목록 (0) | 2022.11.01 |
chmod 리눅스 명령어 (0) | 2022.11.01 |