
H2 DB "start_value" 에러트러블슈팅2023. 11. 23. 18:19
Table of Contents
문제
개인 프로젝트를 진행하던 중 아래와 같이 Column "start_value" not found 에러가 발생하였습니다.
제가 만든 DB 테이블에는 start_value라는 Column이 없는데, 아래와 같이 에러가 발생하였습니다.
해결
제 경우는 application.yml 파일을 수정하여 해결하였습니다.
변경 전
변경 후
hbm2ddl.auto 속성은 hibernate의 매핑 설정 정보를 가지고 DB 스키마의
CREATE, UPDATE, VALIDATE 기능을 정의하는 기능입니다.
옵션 | 설명 |
create | 기존 테이블 삭제 후 다시 생성 DROP + CREATE |
create-drop | CREATE와 같지만 종료 시점에 DROP (CREATE + DROP) |
update | 변경 분만 반영된다. (추가만 되고 지워지는 것은 되지 않음) |
validate | 엔티티와 테이블이 정상 매핑 되었는지만 확인 |
none | 사용하지 않음 |
찾아보니 hbm2ddl 명령어는 아래와 같은 상황에서 적절히 value값을 설정하여 사용하면 될 것 같습니다.
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 운영 서버는 validate 또는 none
운영장비에는 절대 create, create-drop, update를 사용하면 안 됩니다. (데이터가 없어질 위험이 있음)
참고
저는 위의 방법으로 해결하였지만, 근본적인 해결방법은 아닌 것 같습니다.
"start_value" 에러에는 다양한 원인이 있다고 합니다.
- H2 데이터베이스의 버전과 애플리케이션에서 사용하는 H2 데이터베이스의 라이브러리 버전이 맞지 않는 경우
-> 기존 H2 데이터베이스를 삭제하고 최신 버전으로 설치(기존 mv.db 파일 삭제) - application.yml파일에 MVCC=TRUE 명령어를 사용한 경우
-> MVCC=TRUE 명령어 제거(MVCC 옵션은 H2 1.4.198 버전부터 제거됨)
'트러블슈팅' 카테고리의 다른 글
CRLF, LF? (0) | 2024.03.09 |
---|---|
구글 서비스 버전 충돌 문제 해결하기 (0) | 2024.01.27 |
git stash 명령어로 날려버린 파일 복구하기 (0) | 2023.11.01 |
Invalid CORS request (403 Forbidden) (0) | 2023.10.11 |
BaseTimeEntity 적용 안됨 (0) | 2023.09.22 |
@Kyko :: Kyko dev_story
느리더라도 단단하게 성장하고자 합니다!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!