Spring Boot에서 Flyway 시작하기

Flyway는 버전 제어 데이터베이스를 위한 오픈 소스 도구입니다. 데이터베이스용 Git과 같습니다.
Flyway를 사용하면 스키마 및 테이블에 대한 SQL 스크립트를 작성하고 버전을 지정하여 일관성을 유지하고 필요에 따라 롤백할 수 있는 기능을 제공할 수 있습니다.

이 기사에서는 사용자가 Spring Boot에 대한 기본적인 지식이 있다고 가정합니다. 그렇지 않은 경우 Spring Boot 제작자의 공식 가이드https://spring.io/guides/gs/spring-boot/를 참조하세요.

이동 경로 구성

새 Spring Boot 프로젝트를 설정하는 경우 Spring Initializrhttps://start.spring.io를 통해 Flyway 종속성을 추가하고 아래와 같이 Flyway를 종속성으로 추가할 수 있습니다.



기존 Spring Boot 프로젝트로 작업하는 경우 다음과 같이 pom.xml 파일에 수동으로 추가할 수 있습니다.

  • Flyway Core 종속성을 추가합니다.

    <dependency>  
        <groupId>org.flywaydb</groupId>  
        <artifactId>flyway-maven-plugin</artifactId>  
        <version>6.5.5</version>  
    </dependency>
    




  • Flyway maven 플러그인을 추가합니다(이렇게 하면 Maven을 사용하여 Flyway를 실행할 수 있습니다).

    <plugin> 
        <groupId>org.flywaydb</groupId> 
        <artifactId>flyway-maven-plugin</artifactId> 
        <version>6.5.5</version> 
        <configuration> 
            <url>your_db_url</url> 
            <user>your_db_username</user> 
            <password>your_db_password</password
            <locations>classpath:db/migration</locations> 
        </configuration>
    </plugin>
    



  • 마이그레이션 실행

    pom.xml을 구성했으면 이제 첫 번째 마이그레이션 파일을 만들어야 합니다. 기본적으로 Flyway는 내부에서 마이그레이션 파일을 확인합니다src/main/resources/db/migration. Spring Initializr를 사용하여 Flyway를 추가한 경우 이 디렉터리는 이미 생성되어 있습니다. 그렇지 않은 경우 해당 디렉터리를 만들고 첫 번째 마이그레이션 파일을 추가합니다.

    마이그레이션 파일의 이름은 다음과 같아야 합니다. V1__Create_first_table.sql
    마이그레이션 파일을 만든 후 이제 프로젝트의 루트 디렉터리에서 다음 명령을 실행할 수 있습니다.
  • mvn clean install 프로젝트를 빌드합니다.
  • mvn flyway:migrate 마이그레이션을 실행합니다.

  • 일반적인 오류
  • [ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:6.5.5:migrate (default-cli) on project flyway-demo: org.flywaydb.core.api.FlywayException: Unable to connect to the database. Configure the url, user and password! -> [Help 1]이 오류를 해결하려면 Flyway 플러그인 구성에서 pom.xml을 다시 확인하여 URL, 사용자 이름 및 암호가 올바르게 지정되었는지 확인하십시오.
    또한 액세스하려는 데이터베이스가 존재하고 액세스할 수 있는 충분한 권한이 있는지 확인하십시오.
  • FlywayException: Detected failed migration to version 1.0이것은 일반적으로 마이그레이션 파일의 SQL 오류로 인해 발생합니다. 이 오류를 해결하려면 먼저 마이그레이션에서 SQL 오류를 수정한 후 다음 명령을 실행하여 마이그레이션을 복구합니다. mvn flyway:repair .
    마이그레이션이 복구되면 실행mvn flyway:migrate을 실행하여 마이그레이션을 다시 실행할 수 있습니다.
  • 좋은 웹페이지 즐겨찾기