Flaway数据库迁移工具

JerryXia 发表于 , 阅读 (0)
在日常开发中, 经常由于hotfix或者feature需要对数据库表进行更新, 很难人工去把控DB的变更, 难免可能出现问题, Flyway也许能帮助我们.Flyway支持多种使用方式: 如命令行Java API,Maven,Gradle等,并支持常用的数据库:Oracle,MySQL,MariaDB,H2等.

平时build多用Maven, 使用时需要做一些基本的插件配置

<plugin>    <groupId>org.flywaydb</groupId>    <artifactId>flyway-maven-plugin</artifactId>    <version>3.1</version>    <configuration>        <url>jdbc:mysql://127.0.0.1:3306/gaara</url>        <user>root</user>        <password>root</password>        <locations>            <location>filesystem:${project.basedir}/db</location>        </locations>        <table>schema_history</table><!-- 数据库版本历史表 -->        <baselineOnMigrate>true</baselineOnMigrate>        <baselineVersion>5</baselineVersion>    </configuration>    <dependencies>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>${mysql-connector-java.version}</version>        </dependency>    </dependencies></plugin>        

执行mvn迁移命令

            mvn compile flyway:migrate        

数据库会生成schema_history表

flyway1.jpg

现在我们进行了数据库变更, 并通过sqlMigrationPrefix, sqlMigrationSeparator等配置指明了db迁移文件的变更, 再次执行迁移命令

flyway2.jpg

此时数据库历史表发生变化

flyway3.jpg

除了migrate外, 该插件还提供了几个目标