扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章将为大家详细讲解有关Flyway实现简化Spring Boot项目部署的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站设计、绥德网络推广、重庆小程序开发公司、绥德网络营销、绥德企业策划、绥德品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供绥德建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
1.什么是 Flyway
我们在公司做开发时,由于项目需求的变化,或者前期设计缺陷,导致在后期需要修改数据库,这应该是一个比较常见的事情,如果项目还没上线,你可能把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,我们需要通过 SQL 脚本在已有数据表的基础上进行升级。
目前 Java 这块,想要对数据库的版本进行管理主要有两个工具:
Flyway
Liquibase
两个工具各有千秋,但是核心功能都是数据库的版本管理,这里主要来看 Flyway。就像我们使用 Git 来管理代码版本一样,Flyway 可以用来管理数据库版本。
好了,接下来我们就来看看用 Flyway 如何简化微人事部署,然后再来说说 Flyway 的一个大致原理。
2.嵌入到微人事
如果是在一个全新的项目中使用 Flyway,那么在新建一个 Spring Boot 项目时,就有 Flyway 的选项,如下图:
项目创建成功后,resources 目录下也会多出来一个 db/migration 目录,这个目录用来存放数据库脚本,如下:
注意
这个如果创建项目时就选择了 Flyway 依赖,就会有这个目录。现在我要在已经做好的微人事中加入 Flyway,这个目录就需要我手动创建了。
首先在微人事中添加 flyway 依赖:
org.flywaydb flyway-core
然后在 vhr-web 模块下的 resources 目录下,手动创建 db/migration 目录,然后在该目录下创建数据库脚本,数据库脚本的命名方式如下:
V
首先是大写字母 V,然后是版本号,要是有小版本可以用下划线隔开,例如 2_1,版本号后面是两个下划线,然后是脚本名称,文件后缀是 .sql。
例如我这里创建我的第一个数据库脚本,取名为 V1__vhr.sql,脚本内容就是微人事的数据库脚本,大家可以在 https://github.com/lenve/vhr 这里获取到。
完了之后,可以不用添加额外配置,大家只需要在本地 MySQL 中创建一个空的 vhr 数据库即可,然后直接启动微人事项目,项目启动成功后,我们查看启动日志:
从这段启动日志中,我们可以看到 Flyway 的执行信息,数据库脚本的执行执行,同时这里还说了,Flyway 还给创建了一个 flyway_schema_history 表,这个表用来记录数据库的更新历史。
这个时候,打开本地数据库,我们发现 vhr 库中该有的表都有了。同时还发现了 flyway_schema_history 表,如下:
有了这条记录,下次再启动 vhr 项目,V1__vhr.sql 这个脚本文件就不会执行了,因为系统知道这个脚本已经执行过了,如果你还想让 V1__vhr.sql 脚本再执行一遍,需要手动删除 flyway_schema_history 表中的对应记录,那么项目启动时,这个脚本就会被执行了。
3.执行细节
4.其他配置
在 Spring Boot 中,关于 Flyway 也有不少配置,这些配置都在 application.properties 中进行配置,常用的几个来和大家说下:
关于Flyway实现简化Spring Boot项目部署的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流