본문 바로가기
Spring/DB

H2 데이터베이스 데이터 유지하기

by YoonJong 2022. 12. 20.
728x90

보통 프로젝트 시, 초기 개발단계에서는 가벼운 H2 데이터베이스를 많이 이용한다.

현재 내가 프로젝트에는 H2 인메모리 주소를 사용하고 있다.

ddl-auto 가 none 이든 create-drop 이든 어떤 설정으로 해도 휘발성이기 때문에,

프로젝트를 다시 시작하게 되면 H2 DB 에 들어있는 데이터가 모두 증발해버린다.

 

구현이 거의 마무리되어가고, 데이터가 사라지는 것을 방지하고 싶어 해결방안을 찾아보았다.

 

기존 yml 파일의 내용을 보면, url 이 인메모리로 되어있는 것을 볼 수 있다.

spring:
  h2: 
    console:
      enabled: true
      path: /h2-console

  datasource:
    url: jdbc:h2:mem:shop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
        show_sql: true

위의 기존 yml 에서 url 의 경로를 수정해준다.

jdbc:h2:file: 까지는 공통이며 뒤에 부분은 폴더를 하나 만들어 해당 주소를 기입하면된다.

datasource:
  url: jdbc:h2:file:C:\Users\dbswh\OneDrive\바탕 화면\H2\shoppingmall

 

여기까지 했으면 이제 ddl-auto 만 설정해서 사용하면된다.

create 나 create-drop 을 사용하면 저장되어 있는 데이터가 지워지므로, 필요에 따라 잘 사용해야 한다.

728x90

댓글