Spring

JPA 데이터베이스의 데이터가 계속 사라진다면?

용용띠용 2025. 5. 15. 19:20

문제상황

: 애플리케이션을 실행할 때마다 기존에 데이터베이스에 저장해둔 데이터가 사라진다.

 

원인

: application.properties 파일의 JPA DDL 자동 설정에 이유가 있다.

spring.jpa.hibernate.ddl-auto=create

위의 코드가 작성되어 있었다. 이는 애플리케이션을 실행하면 기존 테이블을 전부 drop 하고 엔티티 정의에 따라 새로 테이블을 생성하도록 정의한 것이다. 따라서 매 실행마다 데이터가 삭제된 것이다. 

 

해결책

: 설정값을 바꾼다.

spring.jpa.hibernate.ddl-auto=update

update로 설정값을 변경하면 엔티티 변경사항만 반영되고 데이터는 보존된다. 즉 앞서 발생했던 데이터가 실행마다 사라지는 문제를 해결할 수 있다.

 

여러가지 설정값

: 그 외에도 다양한 설정값이 있으니 참고하자.

설정 값 설명
create 애플리케이션을 실행할 때마다 새로 테이블을 생성한다. 기존 데이터는 모두 삭제된다.
create-drop 애플리케이션 종료 시 테이블이 삭제된다. 테스트 할 때 유용하다.
update 엔티티 변경사항만 반영되고 데이터는 보존된다.
validate 스키마가 엔티티와 맞는지 검증만 하고 수정은 하지 않는다.
none 테이블을 생성하거나 수정하지 않는다. 즉 db 스키마를 건드리지 않는다.