1. Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。

  2. Flyway 的项目主页是 http://flywaydb.org/

  3. Flyway配置成Maven插件,如下图:

  4. 以下是我测试时配置的POM.xml

        ....
        <build>
            <finalName>flyway</finalName>
            <plugins>
                <plugin>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-maven-plugin</artifactId>
                    <version>${flywaydb.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>${mysql.jdbc.version}</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <driver>com.mysql.jdbc.Driver</driver>
                        <url>jdbc:mysql://localhost:3306/flyway?useUnicode=true&amp;characterEncoding=utf-8</url>
                        <user>root</user>
                        <password>root</password>
                        
                        <!-- 设置接受flyway进行版本管理的数据库,多个数据库以逗号分隔 -->
                        <schemas>flyway</schemas>
                        <!-- 设置存放flyway metadata数据的表名 -->
                        <table>schema_version</table>
                        <!-- 设置flyway扫描sql升级脚本、java升级脚本的目录路径或包路径 -->
                        <locations>
                        <location>db/migration</location>
                        </locations>
                        <!-- 设置sql脚本文件的编码 -->
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        ....
    
  5. Flyway常用的命令含义

    命令含义
    migrate升级数据库
    clean删除所有配置的schemas的对象
    info打印所有升级的明细和状态信息
    validate验证指定路径下(ClassPath)升级配置的正确性
    baseline基于当前数据库版本,跳过所有早于当前版本的升级
    repair修复数据库中的所有表