스프링 부트 애플리케이션을 개발하다보면 데이터베이스 스키마를 관리해야 할 때가 있습니다. 그러나 변경된 스키마를 적용하고 관리하는 일은 꽤 까다롭습니다. 이를 위해 Liquibase라는 유용한 플러그인을 사용할 수 있습니다. 이 플러그인은 데이터베이스 스키마를 관리하고 버전 관리할 수 있는 기능을 제공합니다.
Liquibase란?
Liquibase는 데이터베이스 스키마를 관리하기 위한 오픈 소스 라이브러리입니다. XML 또는 YAML 형식의 changelog 파일을 사용하여 데이터베이스 스키마의 변경 사항을 정의하고, 이 변경 사항을 데이터베이스에 적용합니다. Liquibase는 자동으로 변경 내용을 추적하고 업그레이드 스크립트를 생성하여 데이터베이스를 업데이트합니다.
스프링 부트에서 Liquibase 사용하기
스프링 부트 프로젝트에서 Liquibase를 사용하려면 다음 단계를 따르면 됩니다.
단계 1: 의존성 추가
먼저 pom.xml
파일에 Liquibase와 관련된 의존성을 추가해야 합니다. 다음 코드를 <dependencies>
섹션에 추가합니다:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.4.3</version>
</dependency>
단계 2: changelog 파일 작성
다음으로, resources/db/changelog
디렉토리에 Liquibase changelog 파일을 작성해야 합니다. 이 파일은 스키마 변경 내용을 정의합니다. 예를 들어, 001-create-tables.xml
파일을 생성하고 다음과 같이 작성할 수 있습니다:
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd">
<changeSet id="1" author="yourname">
<createTable tableName="users">
<column name="id" type="bigint" autoIncrement="true" primaryKey="true"/>
<column name="username" type="varchar(50)"/>
<column name="email" type="varchar(50)"/>
</createTable>
</changeSet>
</databaseChangeLog>
위의 예제에서는 users
테이블을 생성하는 changeSet을 정의하고 있습니다.
단계 3: 스프링 부트 설정
마지막으로, 스프링 부트의 application.properties
파일에 Liquibase 설정을 추가해야 합니다. 다음과 같이 설정합니다:
spring.liquibase.change-log=classpath:db/changelog/001-create-tables.xml
위의 예제에서는 001-create-tables.xml
changelog 파일을 사용하도록 설정하였습니다.
변경 내용 적용하기
스프링 부트 애플리케이션을 시작할 때 Liquibase는 설정된 changelog 파일을 기반으로 데이터베이스 스키마를 자동으로 생성합니다. 변경 사항이 있을 경우 Liquibase는 자동으로 해당 스키마를 업데이트합니다.
결론
Liquibase를 사용하면 스프링 부트 애플리케이션에서 데이터베이스 스키마를 쉽게 관리할 수 있습니다. 위의 단계를 따라 Liquibase 플러그인을 스프링 부트 프로젝트에 추가하고 changelog 파일을 작성하여 스키마 변경 내용을 관리해보세요.