소개
데이터베이스 마이그레이션은 애플리케이션의 버전이 업데이트될 때 데이터베이스 스키마를 변경 또는 업그레이드하는 프로세스입니다. 이를 효과적으로 관리하기 위해 Liquibase를 사용할 수 있습니다. Liquibase는 자바 기반의 오픈 소스 도구로, 데이터베이스 스키마를 버전 관리하고 마이그레이션을 수행하는 데 도움을 줍니다.
설치 및 설정
- Liquibase를 사용하기 위해선 먼저 Liquibase 공식 웹사이트에서 Liquibase CLI를 다운로드하고 설치해야 합니다.
- Liquibase CLI를 설치한 후, 애플리케이션의 프로젝트 디렉토리에 Liquibase를 설정하는 파일인
liquibase.properties
를 생성합니다. liquibase.properties
에 데이터베이스 연결 정보와 변경 로그 파일 경로 등을 설정합니다.
변경 로그 작성
- 변경 작업을 기록하기 위해
changelog.xml
이라는 이름의 파일을 생성합니다. -
changelog.xml
파일에 변경 작업을 추가합니다. 각 변경 작업은<changeSet>
태그로 시작하며, 유니크한 ID와 작업을 설명하는 태그를 포함해야 합니다. 예를 들어:<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.3.xsd"> <changeSet id="1" author="your-name"> <createTable tableName="example"> <column name="id" type="int"/> <column name="name" type="varchar(255)"/> </createTable> </changeSet> </databaseChangeLog>
마이그레이션 수행
-
Liquibase CLI를 사용하여 데이터베이스에 마이그레이션을 수행합니다. 예를 들어, 커맨드 라인에서 다음과 같은 명령을 실행할 수 있습니다:
liquibase --changeLogFile=changelog.xml update
이 명령은
changelog.xml
파일에 정의된 변경 작업들을 실행하여 데이터베이스를 업데이트합니다. -
Liquibase는 변경 작업의 상태를 추적하기 위해
DATABASECHANGELOG
테이블을 사용합니다. 이 테이블은 변경 작업의 실행 이력과 상태를 기록합니다.
롤백(Rollback)
-
Liquibase를 사용하여 마이그레이션을 롤백할 수도 있습니다. 예를 들어, 커맨드 라인에서 다음과 같은 명령을 실행하여 롤백할 수 있습니다:
liquibase --changeLogFile=changelog.xml rollbackCount 1
이 명령은 최근에 실행된 변경 작업을 롤백합니다.
결론
Liquibase를 사용하면 자바 애플리케이션의 데이터베이스 마이그레이션을 효과적으로 관리할 수 있습니다. Liquibase CLI를 사용하여 변경 로그를 작성하고, 마이그레이션을 수행하고, 롤백할 수 있습니다. 이를 통해 애플리케이션의 데이터베이스 스키마를 손쉽게 업데이트할 수 있습니다.
더 많은 정보를 원하시면 Liquibase 공식 문서를 참조하세요.