springboot1.x集成flyway

一、flyway简介

      1.Flyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步.

      2.运行流程如下:

      a、 首先配置好flyway的基本信息后,运行项目,会在数据库表中默认新建一个数据表用于存储flyway的运行信息,默认的数据库名:flyway_schema_history

      b、 紧接着Flyway将开始扫描文件系统或应用程序的类路径进行迁移。然后,Flyway的数据迁移将基于对用sql脚本的版本号进行排序,并按顺序应用:

             可以看到执行数据库表后在checksum中储存一个数值,用于在之后运行过程中对比sql文件执行是否有变化。

      c、flyway在执行脚本时,会在源数据表中检查checksum值,并确定上次运行到哪一个脚本文件,本次执行时从下一条脚本文件开始执行。所以编写脚本的时候不要去修改原有的脚本内容,并且新的脚本版本号要连续

      d、官方文档地址:https://flywaydb.org/documentation/

二、flyway集成

1.由于当前项目中springboot版本为1.5.8,故以下内容根据springboot--1.5.8版本、flyway-core--5.0.3、flyway-maven-plugin--5.0.3做集成和使用介绍。

2.引入flyway相关maven依赖如下:

 

 

3.build中引入flyway相关插件(plugin)如下:

 

4.在yaml中增加flyway相关配置参数:

 

三、flyway的使用

1.将.sql脚本维护在db.migration下面

2.sql脚本命名格式

sql 规范   V+版本号(版本号的数字间以"."或"_"分隔开)+双下划线(用来分隔版本号和描述)+文件描述+后缀名,例如:V1.1__test.sql、V1.2__test2.sql。(版本号必须唯一不然的话执行时会有冲突)

ps:flyway会根据版本号的大小进行顺序、增量执行。

四、FAQ

1.出现以下日志,代表flyway_schema_history中存在数据库脚本1.2执行错误

 

 

解决方案:a): 将sql脚本修复正确并手动在数据库执行后,手动将flyway_schema_history中success值0修改为1(代表成功)。

                  b):在flyway_schema_history中将1.2版本这条记录删掉,重启项目。

2.出现以下日志,代表历史执行过的脚本被修改过

 

解决方案:a):将脚本还原,增量的去执行要修改的sql脚本

3.出现以下日志,代表sql执行错误检查sql执行

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值