028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Flyway实现简化SpringBoot项目部署的方法

这篇文章将为大家详细讲解有关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 的选项,如下图:

Flyway实现简化Spring Boot项目部署的方法

项目创建成功后,resources 目录下也会多出来一个 db/migration 目录,这个目录用来存放数据库脚本,如下:

Flyway实现简化Spring Boot项目部署的方法

注意

这个如果创建项目时就选择了 Flyway 依赖,就会有这个目录。现在我要在已经做好的微人事中加入 Flyway,这个目录就需要我手动创建了。

首先在微人事中添加 flyway 依赖:


  org.flywaydb
  flyway-core

然后在 vhr-web 模块下的 resources 目录下,手动创建 db/migration 目录,然后在该目录下创建数据库脚本,数据库脚本的命名方式如下:

V__.sql

首先是大写字母 V,然后是版本号,要是有小版本可以用下划线隔开,例如 2_1,版本号后面是两个下划线,然后是脚本名称,文件后缀是 .sql。

例如我这里创建我的第一个数据库脚本,取名为 V1__vhr.sql,脚本内容就是微人事的数据库脚本,大家可以在 https://github.com/lenve/vhr 这里获取到。

完了之后,可以不用添加额外配置,大家只需要在本地 MySQL 中创建一个空的 vhr 数据库即可,然后直接启动微人事项目,项目启动成功后,我们查看启动日志:

Flyway实现简化Spring Boot项目部署的方法

从这段启动日志中,我们可以看到 Flyway 的执行信息,数据库脚本的执行执行,同时这里还说了,Flyway 还给创建了一个 flyway_schema_history 表,这个表用来记录数据库的更新历史。

这个时候,打开本地数据库,我们发现 vhr 库中该有的表都有了。同时还发现了 flyway_schema_history 表,如下:

Flyway实现简化Spring Boot项目部署的方法

有了这条记录,下次再启动 vhr 项目,V1__vhr.sql 这个脚本文件就不会执行了,因为系统知道这个脚本已经执行过了,如果你还想让 V1__vhr.sql 脚本再执行一遍,需要手动删除 flyway_schema_history 表中的对应记录,那么项目启动时,这个脚本就会被执行了。

3.执行细节

4.其他配置

在 Spring Boot 中,关于 Flyway 也有不少配置,这些配置都在 application.properties 中进行配置,常用的几个来和大家说下:

关于Flyway实现简化Spring Boot项目部署的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页名称:Flyway实现简化SpringBoot项目部署的方法
标题URL:http://www.tsicrk.com/article/pgdhdg.html

其他资讯

让你的专属顾问为你服务

1.2955s