[SpringBoot] H2 데이터베이스 PostgreSQL 모드로 변경하기
스프링부트 프로젝트에서 테스트를 위한 데이터베이스로 H2를 사용하고 있는데, PostgreSQL 모드로 변경하는 방법을 알아봅니다.
공식 문서에서 쉽게 찾아볼 수 있었는데, MODE=PostgreSQL만 설정에 적어두면 된다고 합니다.
자세한 내용은 공식 홈페이지 확인 : https://www.h2database.com/html/features.html#in_memory_databases
Features
Features Feature List H2 in Use Connection Modes Database URL Overview Connecting to an Embedded (Local) Database In-Memory Databases Database Files Encryption Database File Locking Opening a Database Only if it Already Exists Closing a Database Ignore
www.h2database.com
스프링 부트에 적용하려면, application.yml 또는 application.properties에 H2 관련 설정을 수정하시면 됩니다.
spring:
datasource:
url: jdbc:h2:mem:test;MODE=PostgreSQL # 기존 url에 MODE=PostgreSQL 추가
위처럼 URL을 수정하여 간단하게 데이터베이스의 모드를 변경할 수 있습니다.
추가적으로 공식문서에 따르면, 두 가지 옵션을 더 권장하는데 아래 이미지와 같습니다.
첫 번째로는 DATABASE_TO_LOWER 입니다.
이 옵션 TRUE로 설정하면 데이터베이스의 식별자(테이블, 컬럼, 인덱스 등)을 대소문자 구분 없이 작성할 수 있습니다.
데이터베이스가 생성된 뒤 DATABASE_TO_LOWER의 값을 바꾸지말라고 하네요.
// 모두 사용 가능
SELECT * FROM MY_TABLE;
SELECT * FROM my_table;
두 번째는 DEFAULT_NULL_ORDERING 입니다.
이 옵션은 NULL 값을 가진 레코드를 정렬할 때 맨 앞에 위치시킬 수 있습니다.
별로 필요하다는 생각은 안 들어서, 저는 따로 추가는 안 했습니다.