[java] Liquibase를 사용하여 자동으로 데이터베이스 스키마 생성하기

Liquibase는 데이터베이스 스키마 버전 관리를 도와주는 오픈 소스 도구입니다. 이 도구를 사용하면 데이터베이스 스키마를 간단하게 버전 관리할 수 있으며, 변경 사항을 추적하고 스키마를 업데이트할 수 있습니다.

Liquibase 설치하기

Liquibase를 사용하기 위해서는 먼저 설치해야 합니다. 아래의 단계를 따라서 Liquibase를 설치하세요.

  1. Liquibase 다운로드 페이지에서 압축 파일을 다운로드합니다.
  2. 압축 파일을 해제한 후, liquibase 실행 파일을 사용할 곳에 복사합니다. (예를 들어, /usr/local/bin에 복사)
  3. 명령 프롬프트에서 liquibase 명령어를 사용해 정상적으로 설치되었는지 확인합니다.

프로젝트에 Liquibase 설정하기

Liquibase를 사용하여 데이터베이스 스키마를 생성하고 관리하기 위해서는 프로젝트에 Liquibase 설정 파일을 추가해야 합니다. 아래의 단계를 따라서 프로젝트 설정을 진행하세요.

  1. 프로젝트 루트 디렉토리에 liquibase.properties 파일을 생성합니다.
  2. 아래의 내용을 liquibase.properties 파일에 추가합니다.
# 데이터베이스 연결 설정
url=jdbc:mysql://localhost:3306/mydatabase
username=myusername
password=mypassword

# 변경 로그 파일 경로
changelogfile=changelog.xml
  1. 프로젝트 루트 디렉토리에 changelog.xml 파일을 생성합니다. 이 파일은 데이터베이스 스키마 변경 내역을 기록하는 파일입니다.

변경 로그 작성하기

changelog.xml 파일에는 데이터베이스 스키마 변경 내역을 기록하는데 사용되는 로그 파일입니다. 변경 내역을 작성하기 위해서는 Liquibase가 제공하는 몇 가지 태그를 사용해야 합니다. 아래의 예시를 참고하여 변경 내역을 작성하세요.

<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="authorName">
        <createTable tableName="users">
            <column name="id" type="int" autoIncrement="true">
                <constraints primaryKey="true"/>
            </column>
            <column name="name" type="varchar(100)"/>
        </createTable>
    </changeSet>
</databaseChangeLog>

위의 예시에서는 users라는 테이블을 생성하는 변경 내역을 작성하였습니다. 변경 내역은 <changeSet> 태그 안에 작성되며, <createTable> 태그를 사용하여 테이블을 생성하고 있다는 정보를 작성합니다.

데이터베이스 스키마 생성하기

Liquibase 설정과 변경 로그 작성이 완료되었다면, 데이터베이스 스키마를 생성할 수 있습니다. 아래의 명령어를 사용하여 스키마를 생성해 보세요.

liquibase update

위의 명령어를 실행하면 Liquibase가 설정 파일에 정의된 데이터베이스에 접속하여 변경 로그를 실행하고 스키마를 자동으로 생성합니다.

결론

Liquibase를 사용하면 데이터베이스 스키마를 버전 관리하여 변경 사항을 추적하고 유지할 수 있습니다. 이를 통해 팀원들과의 협업이 원활해지고 데이터베이스 스키마 관리의 복잡성을 줄일 수 있습니다.

추가로, Liquibase는 다양한 데이터베이스 시스템을 지원하므로, 자신의 프로젝트에 적합한 데이터베이스를 선택하여 사용할 수 있습니다.

더 자세한 정보는 Liquibase 공식 홈페이지를 참고하세요.