介绍
Flyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。
同时Flyway可以做到,在进行项目部署时,同时更新数据库结构以及数据。
Flyway工作流程简介
1、 首先配置好flyway的基本信息后,运行项目,会在数据库表中默认新建一个数据表用于存储flyway的运行信息,默认的数据库表名:flyway_schema_history
2、Flyway将对sql脚本的版本号进行排序,并按顺序执行:可以看到执行数据库表后在checksum中储存一个数值,用于在之后运行过程中对比sql文件执行是否有变化,若有变化,则启动报错。
注意:flyway在执行脚本时,会在源数据表中检查checksum值,并确定上次运行到哪一个脚本文件,本次执行时从下一条脚本文件开始执行。
执行成功的sql脚本,不要修改其内容。
SpringBoot集成Flyway
引入依赖
|
sql脚本位置以及命名规范
脚本默认目录:src/main/resources/db/migration;
命名规范:
V(Versioned Migrations):每个sql脚本只会执行一次。
- V:代表该脚本只会执行一次。
- 2_1:版本号 ;_1代表小版本。
- __:分隔符;注意:两个下划线
例如:V1_1__init_schema.sql
Flyway的配置
推荐的配置:
|
其他的一些配置:
|
Flyway配合数据库比较工具,完成增量部署时的数据库更新。
可以通过SQLyog,navicate等工具进行数据库结构的比较,并生成差异化SQL。
再将sql写入flyway中,达到目的。