SpringBoot + Flyway,自动化实现数据库版本控制

Spring Boot + Flyway,自动化实现数据库版本控制 本文介绍了Springboot集成flyway方式使用Flyway之前部署脚本方式一般为开发人员按照顺序汇总数据库的升级脚, 然后DBA或者售后在生产库中按照顺序执行升级脚本。使用Flyway之后部署脚本方式就变更为开发人员将脚本构建到程序包中, 部署程序包后启动时Flyway自动执行脚本升级。 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:blog.youkuaiyun.com/Beijing_L/

article/details/122730110

b3921984f4bf7d227975f5e668ba202a.jpeg


为什么使用Flyway

最简单的一个项目是一个软件连接到一个数据库,但是大多数项目中我们不仅要处理我们开发环境的副本,还需要处理其他很多副本。例如:开发环境、测试环境、生产环境。想到数据库管理,我们立刻就能想到一系列问题

  • 如何快速收集执行脚本的清单

  • 执行的脚本总要人工执行,是否可以通过机器执行

  • 执行的脚本是否已经在数据库执行过

  • 执行的脚本是否全部在数据库中执行过

  • 执行的脚本如何回退

  • 如何初始化一个空数据库实例

Flyway是一款数据库版本控制管理工具,它可以简单的、可靠的升级你的数据库。它能帮助解决上面的问题。Flyway核心是记录所有版本演化和状态的MetaData,首次启动创建默认名为SCHEMA_VERSION的元素表。表中保存了版本,描述,要执行的sql脚本等信息。

Flyway已经支持数据库包括:Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL (including Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL (including Amazon RDS and Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE and Phoeni

官网链接:https://flywaydb.org/

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

SpringBoot集成Flyway

2.1 简单示例

参考版本信息

98584bdd2ad4f805aa560ae9b3394bce.png

参考目录结构

9cd7e1ecbb8f32c2b8d3e470c4a66b53.png

1.创建SpringBoot应用,并添加flyway-core依赖,本例中将实现初始化脚本到mysql数据库,因此同时引入了驱动依赖 mysql-connector-java

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

参考pom.xml依赖如下

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
    </dependency>

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

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.8.2</version>
        <scope>test</scope>
    </dependency>

</dependencies>

2.在application.properties中设置flyway信息

server.port=7002

##是否启动,默认开启
spring.flyway.enabled = true
##脚本存放路径
spring.flyway.locations = classpath:db/migration
##当flyway第一次运行时,会在我们对应的数据库中新建一个记录脚本运行情况的
spring.flyway.table=flyway_schema_history

> 基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
>
> * 项目地址:<https://github.com/YunaiV/yudao-cloud>
> * 视频教程:<https://doc.iocoder.cn/video/>

# flyway指向的数据库链接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/runoob?useUnicode=true&characterEncoding=utf8
# 用户名
spring.flyway.user=nacos
# 密码
spring.flyway.password=nacos
# 数据库驱动
spring.flyway.driver-class-name=com.mysql.cj.jdbc.Driver

3.脚本整理

将脚本整理到resource/db.migration路径下,例如

fa17c68cf596e6741f4359baa61cc00c.png

参考SQL脚本信息如下

//V1.20190621.1854__CREATE_PERSION_TABLE.sql脚本内容
create table PERSON (
                        ID int not null,
                        NAME varchar(100) not null
);

//V1.20190621.1904__INIT_PERSION.sql 脚本内容
insert into PERSON (ID, NAME) values (1, 'Axel');
insert into PERSON (ID, NAME) values (2, 'Mr. Foo');
insert into PERSON (ID, NAME) values (3, 'Ms. Bar');

sql 目录中存放脚本文件,脚本名称命名方式

  • 版本化迁移 :执行一遍,版本号唯一,有重复会报错:格式:V+版本号 +双下划线+描述+结束符

  • 重复的迁移 ,不需要版本号,脚本发生变化启动就会执行:格式:R+双下划线+描述+结束符

  • 撤消迁移 :格式:U+版本号 +双下划线+描述+结束符

9e7f33669da7068da4f0fecd3f4b349d.png

4.运行启动主类,运行日志如下,从日志中可以看到如下信息

  • 启动后正确链接到数据库runoob

  • 验证2个迁移脚本成功

  • 使用命令行的方式创建了一张名称为 flyway_schema_history 的记录表,这里要注意,所有脚本一旦执行了就会在 flyway_schema_history中创建记录, 如果出错引发问题,可以删除表中记录,反正启动的时候还会再执行,当然生产环境不建议此方法,但生产环境上部署的包都是验证过无问题的包也不会出现此问题

  • 执行了resource/db.migration 目录下的两个脚本,并执行成功

INFO 190688 --- [           main] o.f.c.internal.license.VersionPrinter    : Flyway Community Edition 7.15.0 by Redgate
        INFO 190688 --- [           main] o.f.c.i.database.base.BaseDatabaseType   : Database: jdbc:mysql://127.0.0.1:3306/runoob (MySQL 5.7)
        INFO 190688 --- [           main] o.f.core.internal.command.DbValidate     : Successfully validated 2 migrations (execution time 00:00.016s)
        INFO 190688 --- [           main] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table `runoob`.`flyway_schema_history` with baseline ...
        INFO 190688 --- [           main] o.f.core.internal.command.DbBaseline     : Successfully baselined schema with version: 1
        INFO 190688 --- [           main] o.f.core.internal.command.DbMigrate      : Current version of schema `runoob`: 1
        INFO 190688 --- [           main] o.f.core.internal.command.DbMigrate      : Migrating schema `runoob` to version "1.20190621.1854 - CREATE PERSION TABLE"
        INFO 190688 --- [           main] o.f.core.internal.command.DbMigrate      : Migrating schema `runoob` to version "1.20190621.1904 - INIT PERSION"
        INFO 190688 --- [           main] o.f.core.internal.command.DbMigrate      : Successfully applied 2 migrations to schema `runoob`, now at version v1.20190621.1904 (execution time 00:00.225s)

停止服务后,重新运行日志如下,从日志中可以看到信息

  • 启动后正确链接到数据库runoob

  • 验证2个迁移脚本成功

  • 本次没有重复执行脚本, 日志中打印当前脚本编号20190621.1904, 即最后1次执行的脚本

INFO 193184 --- [           main] o.f.c.internal.license.VersionPrinter    : Flyway Community Edition 7.15.0 by Redgate
        INFO 193184 --- [           main] o.f.c.i.database.base.BaseDatabaseType   : Database: jdbc:mysql://127.0.0.1:3306/runoob (MySQL 5.7)
        INFO 193184 --- [           main] o.f.core.internal.command.DbValidate     : Successfully validated 3 migrations (execution time 00:00.024s)
        INFO 193184 --- [           main] o.f.core.internal.command.DbMigrate      : Current version of schema `runoob`: 1.20190621.1904
        INFO 193184 --- [           main] o.f.core.internal.command.DbMigrate      : Schema `runoob` is up to date. No migration necessary.

查看Mysql数据库

9793d092943f5d9d925ecf21f29f3765.png

2.2 常见问题

1.Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema(s)

Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema(s) `runoob` but no schema history table. Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:200) ~[flyway-core-7.15.0.jar:na]
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:170) ~[flyway-core-7.15.0.jar:na]
        at org.flywaydb.core.Flyway.execute(Flyway.java:586) ~[flyway-core-7.15.0.jar:na]

问题原因:第一执行的时候没有找到schema history table ,这张表其实就是application.properties文件中spring.flyway.table属性配置的表,因此要么使用命令创建一个或者在application.properties文件中设置 spring.flyway.baseline-on-migrate=true,

2.Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7

Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7
        at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForConnection(DatabaseTypeRegister.java:106) ~[flyway-core-8.4.2.jar:na]
        at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.<init>(JdbcConnectionFactory.java:75) ~[flyway-core-8.4.2.jar:na]
        at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:143) ~[flyway-core-8.4.2.jar:na]
        at org.flywaydb.core.Flyway.migrate(Flyway.java:124) ~[flyway-core-8.4.2.jar:na]

问题原因:flyway-core对数据库版本有要求,例如flyway-core的当前最高版本V8.4.3,不能使用 MySQL 5.7, 当flyway-core 降低到V7.15.0后 问题解决,所以匹配flyway-core和数据库版本后问题即可解决

2.3 源码参考

https://github.com/PNZBEIJINGL/springboot

总结

本文介绍了Springboot集成flyway方式

  • 使用Flyway之前部署脚本方式一般为开发人员按照顺序汇总数据库的升级脚, 然后DBA或者售后在生产库中按照顺序执行升级脚本。

  • 使用Flyway之后部署脚本方式就变更为开发人员将脚本构建到程序包中, 部署程序包后启动时Flyway自动执行脚本升级



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

b598decd1e55bfb6eb2e507437a9285c.png

已在知识星球更新源码解析如下:

c6423d16094653b7da2ab0e39773c11e.jpeg

fcb72aff4f59313e8f0f13f6066c7687.jpeg

92604f25d10b85f834214a5fd03c4c20.jpeg

654e6deac7f482e59a7cabac7325a8d3.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
Flyway让数据库版本管理更简单 作者:烧鸡太子爷 来源:恒生LIGHT云社区 Flyway是什么 随着项目CICD接入,一键启动,敏捷开发已经成为降本提效的不二法宝,其中涉及SQL的变更还不够智能和自动化,因此亟需一款工具能够帮助开发及运维人员高效简便地完成SQL变更,Flyway正是可以满足我们需求的一款工具。 当我们打开Flyway的官网,在首页可以看到关于Flyway的一段英文介绍: Flyway是数据库的版本控制,跨所有环境的稳健架构演变。轻松、愉快和简单的SQL。 总的来说,Flyway是一款专为CI/CD打造的,能对数. 阅读详情

相关推荐

踩坑记录:Clawdbot 对接 Minimax 报错 “401 token is unusable (1004)“ 的终极解决方案

如果你也在配置 Clawdbot 对接 Minimax 模型时,明明 API Key 是新申请的,却死活报错 `401 Unauthorized`,错误码 `1004`,提示 `token is unusable`——那么恭喜你,来对地方了。

hampeter的博客 2001

Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7

【代码】Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7。

weixin_44131922的博客 2011

嵌入式软件面试常见问题及答案

干了多年的嵌入式,被面试过,也面过不少新人,下面这些是面试中很常见的一些问题及答案,答案可以根据自己的经验自己思考下。--持续补充并更新

weixin_37553721的博客 6027

SpringBoot 04 集成Flyway实现数据库版本控制

1. 为什么使用Flyway 最简单的一个项目是一个软件连接到一个数据库,但是大多数项目中我们不仅要处理我们开发环境的副本,还需要处理其他很多副本。例如:开发环境、测试环境、生产环境。想到数据库管理,我们立刻就能想到一系列问题 如何快速收集执行脚本的清单 执行的脚本总要人工执行,是否可以通过机器执行 执行的脚本是否已经在数据库执行过 执行的脚本是否全部在数据库中执行过 执行的脚本如何回退 如何初始化一个空数据库实例 Flywa...

Keep learing, and stay fast 3487

树莓派4B网线直连Windows全流程:从IP查询到SSH登录避坑指南

本文提供了一份详细的树莓派4B通过网线直连Windows电脑的实战指南。核心步骤包括配置Windows网络共享、查询树莓派IP地址以及通过SSH进行安全登录与初始配置。文章深入解析了直连的网络原理,并重点分享了使用CMD命令和工具定位IP、避免常见错误的避坑技巧,帮助用户在没有显示器或路由器的环境下快速完成树莓派初始化。

grape的博客 1081

跟着团子学SAP CO:揭秘结果分析码在项目结算中的实战应用(一)KKA2/CJ88

本文深入解析了SAP CO模块中结果分析码在项目结算中的核心作用。以KKA2(方法10)和事务代码CJ88为例,详细阐述了如何在项目完工后一次性确认收入的场景下,通过结果分析功能实现收入与成本的精准匹配,将项目成本暂估为在制品,确保各期利润的准确反映。

gamma的博客 687

关于MySql5.7版本修改密码时,提示ERROR 1049 (42000): Unknown database 'mysql'的问题

今天在电脑上安装mysql5.7, 主要参考的安装教程: 1. mysql5.7以上版本安装 2. 安装Mysql5.7并修改初始密码 前面一切顺利, 这是我自己新建的配置文件: 从文件中可以看到,我在mysql解压目录下,新建了一个data文件夹,并将其作为mysql数据文件存放路径. 接下来到了修改数据库登录密码的时候,按理来说就是这么操作: mysql&amp;gt; use mys...

zzzgd_666的博客 3万+

【C++】C++异常语法、使用、规范、异常安全及异常的优缺点

实际中我们可以可以去继承exception类实现自己的异常类。但是实际中很多公司像上面一样自己定义一套异常继承体系。因为C++标准库设计的不够好用。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。C++ 提供了一系列标准的异常,定义在 中,我们可以在程序中使用这些标准的异常。异常是一种处理错误的方式,

weixin_51692487的博客 1525

【原创】Flyway 8.2.1及以后版本不再支持MySQL?!

Flyway 8.2.1及以后版本不再支持MySQL?!如何解决?

点点滴滴 1万+

四、zabbix7.0推送告警至钉钉webhook机器人

2、钉钉的webhook是有安全要求的,我采用的是ip的方式,我的zabbix服务器在内网,我的网络出口有多个固定公网ip,所以这样做省事,其他方式也可以你自己考虑。下图是webhook机器人的配置。这一步,参数里面默认的跟我下图里不一样的,按我下图修改。Key是你的webhook机器人地址里的access_token=后面的内容。整个逻辑就是告警动作匹配告警媒介与用户,然后进行告警的发送。1、zabbix服务器能够访问钉钉的服务器,具体说是能访问。二、zabbix7配置报警媒介以及消息模板配置。

m0_74823715的博客 1295

AI大模型:(三)3.9 Deep Agents实现Agent

DeepAgents是基于LangChain的智能体框架,专为复杂长期任务设计。其通过分层架构解决传统局限,提供智能规划、虚拟文件系统、权限控制、任务委派、上下文管理、人机协同、模型适配及技能系统八大核心功能。相比基础LangChain,它内置状态持久化、流式处理和子智能体调度,显著提升可靠性与自主性。典型应用涵盖自动化编程、复杂业务流程编排及持续学习型研究助手。该框架支持多智能体协作,具备路由分发与动态技能加载能力,适用于需高自主性与安全控制的AI场景,有效实现从代码分析到人工审批的全流程自动化管理。

haylee的专栏 444

关于MySql5.7版本修改密码时,提示ERROR 1049 (42000): Unknown database ‘mysql‘的问题

现象: 输入 use mysql; 报错: ERROR 1049 (42000): Unknown database 'mysql' 第一步:检查data文件夹,他下面有三个文件夹,performance_schema,mysql,sys,这时你会发现少了一个mysql文件夹; 第二步:检查my.ini文件,看看datadir设置位置是否正确,比如我这样:datadir=E:\load\Commonly\mysql-5.7.36-winx64\data;如果正确就不管它; 第三步:删除data文

shenzhenyancheng的博客 7734

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

springboot集成flyway

【代码】springboot集成flyway。

weixin_45893072的博客 131

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring Boot 2 实战:使用 Flyway 管理你数据库的版本变更

1. 前言 随着项目的不断迭代,数据库表结构、数据都在发生着变化。甚至有的业务在多环境版本并行运行。数据为王的时代,管理好数据库的版本也成为了迫切的需要。如何能做到像 Git 之类的版本控制工具来管理数据库?Java 项目中常用 Flyway 和 Liquibase 来管理数据库版本。其中 Flyway 相对来说比较受欢迎。 2. Flyway 的特点 Flyway 大受欢迎是因为它具有以下优点...

码农小胖哥 3853

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

SpringBoot三十四:Flyway管理数据库脚本

官网:https://flywaydb.org/ 什么是Flyway? Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持Build构建工具和Spring Boot等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。 支持的数据库

1617

SpringBoot+Flyway 自动化数据库脚本版本控制工具

Flyway主要是用来记录每次迭代的版本sql的表结构的变动.在部署某个版本时,能够快找到这个版本对应的sql,避免出现表结构的错误。Flyway原理简单阐述:开发者将每个版本的 DDL 放到项目中,项目在新环境启动时,会自动创建一张表用于记录 DDL 的版本信息,随后自动执行未执行过的 DDL,同时将执行过的 DDL 信息存入元数据表中。下次再启动时,检测到执行过了,就不会重复执行。.........

发现问题,面对问题,分析问题,解决问题,总结问题 3325

SpringBoot + Flyway 发版再也不怕忘执行 SQL了

本文介绍了Springboot集成flyway方式使用Flyway之前部署脚本方式一般为开发人员按照顺序汇总数据库的升级脚, 然后DBA或者售后在生产库中按照顺序执行升级脚本。使用Flyway之后部署脚本方式就变更为开发人员将脚本构建到程序包中, 部署程序包后启动时Flyway自动执行脚本升级。

mxt51220的博客 1049

Flyway数据库迁移:Spring Boot数据库版本控制终极指南

在当今的软件开发中,数据库版本控制已经成为项目成功的关键因素。Flyway作为一款轻量级的数据库迁移工具,能够帮助开发团队轻松管理数据库变更,确保开发、测试和生产环境的一致性。🚀 ## 什么是Flyway数据库迁移? Flyway是一个开源的数据库迁移工具,它通过简单的SQL脚本实现了数据库的版本控制。与传统的数据库变更管理方式相比,Flyway具有以下显著优势: - **版本控制**:每

gitblog_00198的博客 1081

springboot与flyway集成做数据迁移

flyway是一种用来做数据迁移的框架,如果你的项目不是jpa+hibenate,比如使用的mybatis,那么你需要在实体创建之前,在数据库中生成表结构,然后逆向工程,生成实体,或者自己编码写实体类,部署的时候,需要将测试环境的表结构和部分数据导出为sql文件,部署到生产环境中,全程操作数据库都是人为操作。后续实体发生改变,字段增减,还需要单独运行一个增量的脚本,或者全量更新,这还需要人...

feinifi的博客 1281

02. Springboot集成Flyway

在现代应用程序开发中,数据库的变化是一个不可避免的过程。为了管理数据库版本、维护迁移历史记录和确保开发团队之间的一致性,Flyway 是一个强大的数据库迁移工具,而与 Spring Boot 集成可以让我们更轻松地进行数据库版本管理。

有一只柴犬的专栏 2431

Spring Boot 集成 Flyway,数据库也能做版本控制

使用 Flyway 可以很方便的处理数据库表结果、数据的版本迁移,使用简单、自动化,大大提高生产力,再也不需要手工在控制台进行,那样更容易出错或者遗漏,毕竟人都是会经常犯错的。本文使用的是 Java API 的方式,在项目启动时进行迁移,另外还有其他 3 种方式,文前有介绍,大家根据实际需要进行应用。

FinelyYang的专栏 480
上一篇: 关于 ByteHouse 你想知道的一切,看这一篇就够了
下一篇: 架构设计:为什么说复用是邪恶的?
公众号-芋道源码
博客等级 码龄10年 1635粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值