SpringBoot使用Flyway管理数据库版本

为什么80%的码农都做不了架构师?>>>   hot3.png

SpringBoot使用Flyway管理数据库版本

介绍

Flyway 是一个简单开源数据库版本控制器(约定大于配置),主要提供 migrate、clean、info、validate、baseline、repair 等命令。它支持 SQL(PL/SQL、T-SQL)方式和 Java 方式,支持命令行客户端等,还提供一系列的插件支持(Maven、Gradle、SBT、ANT 等)。

官网地址:https://flywaydb.org/ 当前版本:5.2.1 maven:


    org.flywaydb
    flyway-core
    5.2.1

Flyway集成Springboot

Flyway与Springboot集成很方便。

pom加入引用

pom.xml 加入引用:

        
        
            org.flywaydb
            flyway-core
        

加入sql脚本

在resources目录下创建db/migration目录,里面可以放入sql脚本,格式如下: "V1__init_database.sql"

  • 其中V表示版本关键字,其他的还有U和R,分别用户撤销和迁移。
  • 后面的1表示版本号
  • 后面根两条下划线,这里是个坑,刚开始没注意,只写了一个,结果一直提示如下错误。
Caused by: org.flywaydb.core.api.FlywayException: Wrong migration name format: V1_init_database.sql(It should look like this: V1.2__Description.sql)
  • 再后面跟脚本说明,可以带下划线

目录结构如下截图:

SpringBoot使用Flyway管理数据库版本_第1张图片

配置

加入配置:

SpringBoot使用Flyway管理数据库版本_第2张图片

不过这配置加不加都无所谓,都能执行

运行

项目启动后,数据库新建完毕,见下图:

SpringBoot使用Flyway管理数据库版本_第3张图片

其中flyway_schema_history是flyway内部使用的表,维护了数据库的变更记录,如下:

enter description here

整个集成过程还是很方便的。

示例代码: github:https://github.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-server gitee:https://gitee.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-server

转载于:https://my.oschina.net/tree/blog/2874658

你可能感兴趣的:(SpringBoot使用Flyway管理数据库版本)