본문 바로가기
Spring Framework/JPA

Test용 H2 DB application.yml 설정

by 도쿠니 2022. 6. 9.

H2 DB 란?

  • 자바 기반의 오픈 소스 RDBMS입니다.
  • Server 모드와 Embeded 모드를 지원합니다
    • Embeded 모드의 경우, In memory로 동작합니다. (휘발성)
  • 브라우저 기반의 콘솔 프로그램입니다.
  • 별도의 설치과정이 필요없고, 2MB 용량으로 매우 가볍고 빠릅니다.
  • ANSI 표준 SQL을 사용합니다. 
  • JDBC API를 지원합니다.
  • 주로 개발단계에서 테스트용 인메모리 DB로 사용됩니다.

 

application.yml

spring:
  datasource:
    url: jdbc:h2:mem:test
    username: sa
    password:
    driver-class-name: org.h2.Driver
  h2:
    console:
      enabled: true
  jpa:
    defer-datasource-initialization: true
    database-platform: H2
    hibernate:
      ddl-auto: create-drop
    open-in-view: false
    properties:
      hibernate:
        format_sql: true
        show_sql: true
  • h2.console.enabled 
    • h2 콘솔(브라우저)을 사용할 것인지를 설정합니다.
  • jpa 
    •  defer-datasource-initialization
      • 초기 데이터 입력을 진행할 수 있도록 하는 옵션
        • 빈을 생성하고 초기화를 마칠 때까지 데이터소스 초기화를 미룹니다.
      • 이 옵션이 없으면 테이블 생성 전에 초기 데이터 입력을 하려고 하게 됩니다 (spring boot 2.5.0이상부터 필요한 옵션)
    • hibernate
      • ddl-auto 
        • 어플리케이션 기동 시점에 테이블 생성, 종료 설정을 해줍니다.
      • properties
        • format_sql : 쿼리를 보기좋게 포맷팅 해줍니다.
        • show_sql : hibernate가 DB에 날리는 모든 쿼리를 보여줍니다.

 

 

출처

https://lannstark.tistory.com/14

https://godekdls.github.io/Spring%20Boot/howto.data-initialization/

https://zero-base.co.kr/

 

'Spring Framework > JPA' 카테고리의 다른 글

Transaction (트랜잭션)  (0) 2022.06.10
엔티티 매핑  (0) 2022.06.10
영속성 관리  (0) 2022.06.10
데이터베이스 방언 (Dialect)  (0) 2022.06.10
JPA 소개  (0) 2022.06.10

댓글