使用Flyway做数据库变更版本控制
前言
在DevOps部署流水线中,需要对数据库变更做版本控制,要求能够做到:
- 对数据库变更做版本控制
- 执行数据库增量变更,包括执行DDL和DML语句
- 防止重复执行
- 一次编写SQL,多环境运行
Flyway介绍
Flyway 是一个简单而强大的数据库变更版本控制工具。
Flyway支持通过.sql
文件来对数据库变更脚本做版本控制,.sql
文件的命名规范为
V{version}__{description}.sql
- 大写的V表示该脚本为Flyway Versioned Migration Script
- version为递增的数据库变更脚本版本号
__
两个下划线用来分隔version和description- description为脚本描述
Flyway通过在数据库中创建flyway_schema_history
表来记录数据库变更历史,并防止重复执行脚本和检查之前检查过的脚本是否被篡改。
Flyway支持与Maven和Gradle集成,使得可以不用安装其它工具,就可以在项目中直接使用Flyway来做数据库变更版本控制。
使用Flyway对Spring Boot项目做数据库变更版本控制
下面介绍在Spring Boot项目(用Maven管理依赖)中如何通过Flyway来做数据库变更版本控制。
在pom.xml
文件中添加Flyway的依赖