使用Flyway管理数据库更新

文档:使用Flyway管理数据库更新.note
链接:http://note.youdao.com/noteshare?id=d7ef6102042f58b9e2e01d9aff5d842e&sub=1677AD75832D440BA5BE61DEA45F52D9

 
昨天听说了flyway,今天试了一下,整理笔记备忘。
 
一、项目环境简介
1、基于Spring Boot 2.2.5.RELEASE
2、使用Spring Boot集成的flyway,不使用单独的maven插件
 
二、集成步骤
1、pom.xml中添加依赖
<!-- flyway -->
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
</dependency>
 
2、创建工作目录
 
3、添加flyway配置
 
4、使用示例
4.1 假设在开发库中增加了一个表,并且有初始化数据,使用navicat瘵新增表的结构及数据导出,命名为V2.1.1__role_copy1.sql,拷贝到db/migration目录下
4.2 启动项目,会自动执行V2.1.1__role_copy1.sql
4.3 再增加一个表,导出SQL,重命名为V2.1.2__message_copy1.sql,拷贝到db/migration目录下
4.4 启动项目,会自动执行V2.1.2__message_copy1.sql
4.5
4.6
 
5、命名规则
V + 版本号 +双下划线 + 描述 + 结束符(如.sql) 。
注意:
1. 版本号位数需要一致,并且只能新增,不能修改。如V2.0执行后,新增V2.0.1是不会执行的
2. 如果db/migration中删除了某脚本,在flyway_schema_history表中要删除对应记录
3. 如果某次执行失败,下次执行前,在flyway_schema_history表中要删除对应记录
 
三、Flyway简介
Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,还支持 Build 构建工具和 Spring Boot 等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。
基于7个基本命令: 迁移清理信息验证撤消基线修复
 
四、使用前后对比
1、使用前,开发整理sql脚本,运维更新到生产环境
2、使用后,开发将sql脚本打包到更新包中,项目启动自动执行sql脚本
 
 
参考文章 :

posted on 2020-05-21 14:34  weijs  阅读(1688)  评论(0编辑  收藏  举报

导航