[java] Liquibase를 사용하여 자바 애플리케이션의 데이터베이스 스키마 모델링하기
소개
Liquibase는 자바 애플리케이션의 데이터베이스 스키마 관리를 위한 오픈 소스 도구입니다. 이를 사용하면 데이터베이스 스키마 변경을 추적하고 관리할 수 있으며, 자동으로 스키마 마이그레이션을 수행할 수 있습니다. 이 글에서는 Liquibase를 사용하여 자바 애플리케이션의 데이터베이스 스키마를 모델링하는 방법에 대해 알아보겠습니다.
Liquibase 설치 및 설정
- 먼저 프로젝트의 pom.xml 파일에 Liquibase 의존성을 추가합니다. ```xml
2. Liquibase 설정 파일을 생성합니다. `liquibase.properties`나 `liquibase.xml`과 같은 이름으로 파일을 생성합니다.
### 변경 세트 정의하기
1. 변경 세트를 정의하는 XML 파일을 생성합니다. 파일 이름은 `changelog.xml`이 될 수 있습니다.
2. 변경 세트에는 스키마 변경을 위한 여러 변경 내역(changeSet)을 포함합니다. 예를 들어, 새로운 테이블을 추가하거나, 컬럼을 변경하거나, 인덱스를 생성하는 등의 작업이 포함될 수 있습니다.
3. 변경 세트는 순차적으로 실행되므로, 변경 내역의 순서가 중요합니다.
```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-3.8.xsd">
<changeSet id="1" author="your_name">
<createTable tableName="users">
<column name="id" type="INT">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="VARCHAR(100)">
<constraints nullable="false"/>
</column>
<column name="email" type="VARCHAR(255)"/>
</createTable>
</changeSet>
<changeSet id="2" author="your_name">
<addNotNullConstraint tableName="users" columnName="email"/>
</changeSet>
</databaseChangeLog>
Liquibase 실행
- 변경 세트를 적용하기 전에 Liquibase를 실행하여 현재 데이터베이스의 상태를 확인합니다. 예를 들어,
status
명령어로 변경 세트를 적용하기 전의 상태를 확인할 수 있습니다.liquibase --changeLogFile=changelog.xml status
- 변경 세트를 적용하려면
update
명령어를 사용합니다.liquibase --changeLogFile=changelog.xml update
- 변경 세트를 롤백하려면
rollback
명령어를 사용합니다.liquibase --changeLogFile=changelog.xml rollback 2
결론
Liquibase를 사용하여 자바 애플리케이션의 데이터베이스 스키마를 모델링하는 방법에 대해 알아보았습니다. Liquibase는 데이터베이스 스키마 변경의 추적과 관리를 도와주며, 자동으로 스키마 마이그레이션을 수행할 수 있습니다. 이를 통해 애플리케이션의 데이터베이스 스키마 변경 작업을 보다 효율적으로 관리할 수 있습니다.