使用Flyway进行数据库迁移、版本控制
快速上手很简单,flyway配置极少,以约定为主。
简单的使用介绍,更多详细信息会持续更新。
项目中flyway集成h2数据库
Maven插件
1 | <!-- flyway--> |
Gradle插件
1 | buildscript { |
###
快速使用
- 以Maven项目为例:
resources目录下建立db/migration文件夹,然后在里面放入固定前缀的sql文件即可,V1__表示版本1:

- 文件内容:
1 | create table USER |
创建了一个User表
- 然后在命令行运行:
1 | mvn flyway:migrate |
会自动运行刚刚目录下的sql:

- 然后观察数据库,会发现数据库多了一张表:

这个表里是已执行sql的历史记录,对应版本。
tips:
已执行的sql下次运行将不会再被执行
如果原sql被改变,会在运行时报错停止,保护数据库原先版本
当改动了原sql或有其他异常时,可尝试以下命令:
1 | mvn flyway:repair |
删除失败的迁移项,并且重新对齐迁移校验,修复SCHEMA_VERSION
- V1__两个下划线,这个前缀代表版本1,后面的名字是自定义描述,比如:
如文件名:V1__Create_User_Table.sql,
Create_User_Table是描述信息,
V是Version,数字是版本号。
- 撤销
1 | mvn flyway:undo |
社区版是不支持的这个功能的,大概是要付费了