https://www.maeil-mail.kr/question/28
ddl-auto에는 크게 5가지가 있는데 이 중
none
,validate
은 운영환경에서,update
,create
,create-drop
은 개발환경에서 사용해야함
ddl-auto:none을 사용하면, 데이터베이스 스키마를 변경하지 않는 것을 의미한다. 실제 db 스키마를 수동으로만 제어하고자 할때 사용함
ddl-auto:none을 사용하면, 데이터베이스 스키마와 엔티티 매핑이 같은지를 검증한다.
ddl-auto:update를 사용하면, 엔티티의 변경사항이 데이터베이스 스키마에 반영되며, 기존의 데이터는 유지됨
ddl-auto:create를 사용하면, 어플리케이션이 시작될 때 스키마를 삭제하고 새로 생성한다. 데이터가 모두 삭제되며 엔티티 매핑을 기반으로 새로운 스키마가 생성되므로 초기개발환경에 적합하다
ddl-auto:create-drop을 사용하면 create와 같지만 어플리케이션이 종료될 때 스키마를 삭제한다는 점이 다르다. 일시적인 db가 필요한 테스트 코드환경에서 사용함
Flyway, Liquibase를 이용해서 db 마이그레이션을 하는 것이 안전함
https://velog.io/@msw0909/Entity%EC%84%A4%EA%B3%84%ED%95%98%EA%B8%B0