Flyway는 개발자들이 데이터베이스 스키마 변경을 관리하고 버전을 관리하기 위한 오픈 소스 라이브러리입니다.
이 튜토리얼에서는 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 리즈를 생성하는 방법에 대해 알아보겠습니다.
필수 사항
이 튜토리얼을 완료하기 위해 다음의 도구와 라이브러리가 필요합니다:
- Java 8 이상
- Maven 또는 Gradle (이 예제에서는 Maven을 사용합니다)
- 데이터베이스 (이 예제에서는 MySQL을 사용합니다)
프로젝트 설정
먼저 Maven을 사용하여 Java 프로젝트를 설정합니다. 다음의 단계를 따라 진행해주세요.
-
Maven 프로젝트를 생성합니다.
mvn archetype:generate -DgroupId=com.example -DartifactId=flyway-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
-
생성된 프로젝트 디렉토리로 이동합니다.
cd flyway-example
-
pom.xml 파일을 열고 다음의 의존성을 추가합니다.
<dependencies> <!-- Flyway --> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>7.15.0</version> </dependency> <!-- MySQL JDBC --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> </dependencies>
-
Flyway 구성 파일인
flyway.conf
를 프로젝트의src/main/resources
디렉토리에 추가합니다. 다음의 내용을 추가합니다.flyway.url=jdbc:mysql://localhost:3306/mydb flyway.user=root flyway.password=your_password
위의 설정에서
jdbc:mysql://localhost:3306/mydb
는 사용할 데이터베이스의 URL을 나타냅니다.your_password
부분은 데이터베이스의 비밀번호로 대체되어야 합니다.
마이그레이션 스크립트 작성
이제 Flyway로 사용할 마이그레이션 스크립트를 작성해봅시다. 스크립트는 src/main/resources/db/migration
디렉토리에 위치해야 합니다.
-
src/main/resources/db/migration
디렉토리를 생성합니다.mkdir -p src/main/resources/db/migration
-
마이그레이션 스크립트 파일을 생성합니다. 파일 이름은
V1__create_users_table.sql
로 지정합니다.touch src/main/resources/db/migration/V1__create_users_table.sql
-
V1__create_users_table.sql
파일을 편집하고 다음의 SQL 문을 추가합니다.CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT NOW() );
이 스크립트는
users
테이블을 생성하는 SQL 문입니다.
마이그레이션 수행
Flyway를 사용하여 마이그레이션을 수행해봅시다.
-
프로젝트 디렉토리에서 다음의 Maven 명령어를 실행하여 마이그레이션을 수행합니다.
mvn flyway:migrate
위의 명령을 실행하면 Flyway가 마이그레이션 스크립트를 찾고 순서대로 실행합니다. 데이터베이스의 스키마가 업데이트되고
users
테이블이 생성될 것입니다. -
데이터베이스를 확인하여
users
테이블이 성공적으로 생성되었는지 확인합니다.
결론
Flyway를 사용하여 Java 애플리케이션의 데이터베이스 리즈를 생성하는 방법에 대해 알아보았습니다. Flyway를 사용하면 데이터베이스 스키마 변경을 쉽게 관리할 수 있으며, 버전 관리 기능을 통해 스키마 변경의 이력을 추적할 수 있습니다. Flyway는 개발자들이 애플리케이션과 함께 데이터베이스를 손쉽게 개발, 테스트 및 배포할 수 있는 강력한 도구입니다.