h2 데이터베이스에 테이블이 생성되지 않는 문제

pickylemon·2024년 5월 7일

Exception 모음

목록 보기
10/31

상황

  • h2 데이터베이스 설치 후, 테스트 코드 작성시 테스트 성공하고, JPA가 정상 작동 및 쿼리까지 나가는 것을 확인했는데, H2 database에 테이블이 만들어져있지 않은 상황

원인 및 해결

  • properties.yml 파일에 오타가 있었다.
  • datasource라고 써야 할 부분을 database로 씀
  • yml 파일 작성시 띄어쓰기(2칸)을 지키지 않아도 같은 문제 발생한다고 한다.
#수정전
spring:
  application.name: data-jpa
  database: #여기가 database가 아니라 datasource여야함
    url: jdbc:h2:tcp://localhost/~/datajpa
    username: sa
    password:
    driver-class-name: org.h2.Driver
#수정후
spring:
  application.name: data-jpa
  datasource: #여기가 database가 아니라 datasource여야함
    url: jdbc:h2:tcp://localhost/~/datajpa
    username: sa
    password:
    driver-class-name: org.h2.Driver

즉, SpringBoot는 datasource를 지정하지 않으면, 임베디드 데이터베이스를 사용하기 때문에, 테스트는 정상 작동했지만 설정파일에 지정한 db에는 연결되지 않았던 것.

실제 개발은 데이터베이스를 연동하고, 테스트 시에는 임베디드 DB로 분리해서 사용할 수도 있다.

profile
안녕하세요

0개의 댓글