[java] Java JHipster의 데이터 마이그레이션 방법

JHipster는 자바 기반으로 개발된 모던 웹 애플리케이션을 빠르게 구축하기 위한 프레임워크입니다. 이를 사용하면 보안, 인증, 인가 등과 같은 일반적인 애플리케이션 요구사항을 쉽게 구현할 수 있습니다. 데이터베이스 스키마가 변경될 경우, JHipster는 데이터 마이그레이션을 자동으로 처리할 수 있는 기능을 제공합니다. 이제 Java JHipster 애플리케이션에서 데이터 마이그레이션을 수행하는 방법에 대해 알아보겠습니다.

데이터 마이그레이션 파일 생성

데이터 마이그레이션을 위해선 데이터베이스 변경 내용을 스크립트로 작성해야 합니다. JHipster는 Liquibase를 사용하여 데이터 마이그레이션을 처리하며, 이를 위한 스크립트 파일은 src/main/resources/config/liquibase/changelog 경로에 생성할 수 있습니다.

src/main/resources/config/liquibase/
└── changelog
    └── YYYYMMDDHHMMSS_my_migration_file.xml (또는 .yaml)

위의 경로에 마이그레이션 파일을 생성하면 JHipster가 자동으로 해당 파일을 인식하고 데이터베이스 스키마를 업데이트합니다. 파일 이름은 YYYYMMDDHHMMSS_my_migration_file.xml (또는 .yaml)와 같은 형식을 따라야 합니다. 파일은 Liquibase XML 또는 YAML 형식으로 작성할 수 있습니다.

데이터 마이그레이션 파일 작성

JHipster는 디폴트로 H2 데이터베이스를 사용합니다. 데이터베이스를 변경하면 해당 데이터베이스에 대한 데이터 마이그레이션 파일을 생성해야 합니다. 예를 들어 MySQL을 사용한다면 다음과 같은 데이터 마이그레이션 파일을 작성할 수 있습니다.

<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.1.xsd">

    <changeSet id="YYYYMMDDHHMMSS" author="author_name">
        <createTable tableName="my_table">
            <column name="id" type="bigint" autoIncrement="true" nullable="false">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(255)" nullable="false"/>
            <column name="created_date" type="datetime" defaultValueDate="CURRENT_TIMESTAMP"/>
        </createTable>
    </changeSet>
    
    <!-- 이하 변경된 내용 추가 -->
</databaseChangeLog>

위의 예시는 my_table이라는 테이블을 생성하는 마이그레이션 파일입니다. 적절하게 변경된 내용을 추가하여 데이터베이스 스키마를 업데이트할 수 있습니다.

데이터 마이그레이션 실행

데이터 마이그레이션 파일이 준비되면 JHipster 애플리케이션을 실행하여 데이터베이스 스키마를 업데이트할 수 있습니다. 아래의 명령어를 실행하면 데이터베이스 마이그레이션이 수행됩니다.

./mvnw liquibase:update

위 명령어를 실행하면 데이터베이스 마이그레이션 파일이 실행되고 데이터베이스 스키마가 업데이트됩니다.

마치며

이제 Java JHipster 애플리케이션에서 데이터 마이그레이션을 수행하는 방법을 알아보았습니다. Liquibase를 사용하여 데이터베이스 변경 내용을 스크립트로 작성하고, 해당 파일을 JHipster 애플리케이션에서 실행하여 데이터베이스 스키마를 쉽게 업데이트할 수 있습니다.