데이터베이스 스키마를 자동으로 생성, 수정 또는 삭제하는 기능
create
: 기존테이블 삭제 후 다시 생성 (DROP + CREATE)
create-drop: create
: create와 같으나 종료 시점에 테이블 DROP
update
: 변경분만 반영 (운영DB 에서는 사용하면 안됨)
validate
: 엔티티와 테이블이 정상 매핑되었는지만 확인
none
: 사용하지 않음 (사실상 없는 값이지만 관례상 none이라고 한다.)
운영 장비에서는 절대 create, create-drop, update 사용하면 안된다.
개발 초기 단계는 create
또는 update
테스트 서버는 update
또는 validate
스테이징과 운영 서버는 validate
또는 none
평소 update를 사용한다. 엔티티의 필드를 삭제한후 실제 테이블을 확인하면 반영되지 않는다. 이유를 알아보자!!
이러한 동작은 의도된 설계이다.
왜냐하면, 레거시 DB를 사용할 수 있도록 허용한 것이기 때문이다.
즉 과거에 사용하던 DB를 사용할 수 있도록 설계된 사항이다.
ddl-auto=create-drop 을 사용한다.
직접 SQL을 작성하여 칼럼 삭제한다.
파일을 DROP 시키고 다시 빌드한다.