数据库迁移神器——Flyway(二)

简介: Hello 大家好,我是阿粉,不知道你有没有遇到过这种场景,一套代码部署在不同的环境中,随着时间的过去,各个环境代码有版本差异,代码层面可以通过不同的版本来控制,但是数据库层面经常容易忘记更新!

SpringBoot 项目接入 Flyway

SpringBoot 项目接入 Flyway 非常简单,主要分为如下几步即可,我们依次来看一下。

加入依赖

<!-- flyway -->
 <dependency>
     <groupId>org.flywaydb</groupId>
     <artifactId>flyway-core</artifactId>
 </dependency>

在项目 pom.xml 文件中加入上面的依赖即可。

增加配置

# 启用 flyway
spring.flyway.enabled=true
# 禁止清理数据表
spring.flyway.clean-disabled=true
# 是否已经有数据库
spring.flyway.baseline-on-migrate=true
# 基础版本号,依次递增
spring.flyway.baseline-version=0
# 迁移脚本的存放的位置
spring.flyway.locations=classpath:db/migration

这里因为很多情况下我们并不是一个新项目就开始使用 Flyway,而是项目在迭代中才引入的,所以上面的配置spring.flyway.clean-disabled=true 一定要禁用。上面几个配置由于已经继承到 SpringBoot 中了所以配置起来十分简单。

迁移脚本文件

脚本的命名规则按照上面说的,我们这边采用版本迁移。我们创建一个版本的 SQL 文件放到对应的类路径文件夹里面,文件名叫V1.2__create_test_table.sql,文件内容如下,然后我们启动项目。

CREATE TABLE `test_table`  (
  `id` int(11) NULL COMMENT 'ID',
  `name` varchar(255) NULL COMMENT 'Name'
);

启动过程中我们看到如下日志,显示了当前的版本,以及迁移的版本。

4.jpg

我们再查看数据库,首先 test_table 已经创建成功了

5.jpg

另外我们在查看flyway_schema_history 表,会发现已经多了一条版本数据,至此我们介入 Flyway 已经成功了。

6.jpg

总结

今天阿粉给大家介绍了一个数据库版本迁移的工具,这么好的工具大家赶紧用起来吧,这样在以后的版本迭代的过程中再也不会忘记执行SQL 了。这篇文章先跟大家介绍 Flyway 的使用,下篇文章我们再分享它的实现原理。

相关文章
|
10月前
|
存储 关系型数据库 数据库连接
flyway适配高斯数据库
flyway适配高斯数据库
244 0
|
6天前
|
Java 数据库连接 数据库
Spring Boot中如何使用Flyway进行数据库版本控制
Spring Boot中如何使用Flyway进行数据库版本控制
|
2月前
|
容灾 Java 数据库
OceanBase数据库常见问题之spring boot应用增加了flyway的依赖但没执行如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
11月前
|
SQL 数据库 开发工具
真香!flyway数据库版本控制
真香!flyway数据库版本控制
222 0
|
SQL Oracle 关系型数据库
SpringBoot + Flyway,自动化实现数据库版本控制
SpringBoot + Flyway,自动化实现数据库版本控制
|
SQL druid Java
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
1483 0
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
|
SQL 存储 Oracle
Flyway数据库脚本管理工具使用经验
在常见的敏捷开发过程中,迭代的更新频繁出现,每个迭代数据库脚本也经常会更新,为了更好地管理项目中的数据库脚本,下面为大家介绍一款数据库脚本管理工具Flyway,希望对大家有帮助!
1138 1
Flyway数据库脚本管理工具使用经验
|
SQL 安全 JavaScript
SpringBoot整合Flyway完成数据库持久化迭代更新
每次服务的代码更新部署,难免会存在`数据库结构`的变更以及`字典数据的添加`,手动`执行更新脚本`是一个`耗时耗力`的工作,而且还会出现遗漏或者其他状况,`SpringBoot`内部集成了一个自动执行数据库脚本的第三方依赖`Flyway`来解决这个繁琐的问题。
|
IDE 中间件 Java
数据库版本控制中间件flyway企业落地
flyway为数据库控制插件,使所有的数据库脚本都在ide(idea,eclipse等)中控制,这样能做到版本有迹可循。
350 0
数据库版本控制中间件flyway企业落地
|
SQL 数据库
数据库迁移神器——Flyway
Hello 大家好,我是阿粉,不知道你有没有遇到过这种场景,一套代码部署在不同的环境中,随着时间的过去,各个环境代码有版本差异,代码层面可以通过不同的版本来控制,但是数据库层面经常容易忘记更新!
数据库迁移神器——Flyway