SpringBoot配置flyway

news2024/9/22 1:34:26

背景

目前我们的项目代码都会交由Git、SVN等版本管理工具进行管理,但是我们的sql脚本,尤其是各类ddl脚本并没有进行版本的管理(python的web框架Django默认就提供了类似的工具,从一开始就鼓励开发者通过版本管理的方式进行数据库的变更)。当我们的项目从一个环境迁移到另一个中时,往往需要手工来完成表的初始化工作,这一环节中由于各种原因可能会出现脚本的遗漏导致上线失败。因此我们需要一个数据库版本管理工具来代替人工操作,完成数据库表的升级变更。

在Springboot这个生态下,主流的是flyway和liquibase,相较于liquibase,flyway的配置会更加简单,这里使用flyway作为数据库管理工具。

最新版本的flyway不再支持mysql 5.7及以下版本,如果需要使用mysql5.7可以考虑商业版本,或者降低flyway的版本并自行完成相关bean的初始化工作,又或者使用别的工具替换

相关配置

添加依赖

首先是添加依赖,我们使用spring-boot-starter-parent作为父级项目,可以在依赖中直接添加flyway-mysql,这里如果使用别的数据库,可以根据需要替换为相应的依赖

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.2.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

		<dependency>
			<groupId>org.flywaydb</groupId>
			<artifactId>flyway-mysql</artifactId>
		</dependency>

配置文件

flyway默认会使用已经配置好的数据源,如果需要更加精细化的管理,也可以自行指定

配置项参考值备注
spring.flyway.locationsclasspath:/db/migration脚本存放的路径,resources/db/migration
spring.flyway.baseline-on-migratetrue如果数据库已经有表,需要设为true
spring.flyway.user数据库用户
spring.flyway.password数据库密码
spring.flyway.urlJDBC url

数据脚本管理

交由flyway管理的脚本都需要放在spring.flyway.locations配置的目录下,并且文件名有一定的格式要求

[V|R]{版本号}__{脚本描述}.sql

V代表一次性执行脚本,R代表可重复执行脚本,一个例子

在这里插入图片描述

flyway会在数据库中创建一个名为flyway_schema_history,所有执行过的脚本都会存放在表中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1916121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机前端面试题总结-暑期实习(答案补充2)

目录 技术方面 二、js 1.js数据类型 1&#xff09;值类型(基本类型) 2&#xff09;引用数据类型&#xff08;对象类型&#xff09; ​编辑 2.判断数据类型是否为数组类型 1&#xff09;Array.isArray() 2&#xff09;instanceof操作符 3&#xff09; Object.prototyp…

【分布式系统】Ceph应用之资源池pool管理

目录 一.资源池Pool管理 1.查看资源池信息 1.1.查看资源池副本的数量 1.2.查看 PG 和 PGP 数量 2.修改资源池 2.1.修改 pg_num 和 pgp_num 的数量为 128 2.2.修改 Pool 副本数量为 2 2.3.修改默认副本数为 2 2.4.推送 ceph.conf 配置文件给所有 mon 节点 2.5.去node节…

搭建企业平台:聚合优势资源,优化服务

国际数字影像产业园在加强服务支持与资源整合方面取得了显著成效。通过提供全生命周期服务方案、搭建多元化服务平台、提供政策咨询与行政审批支持、技术与创新支持等措施&#xff0c;为入园企业提供了全方位、便捷、高效的服务支持。同时&#xff0c;通过整合产业链资源、加强…

Xshell配置ssh免密码登录(密钥登陆)

文章目录 一、Xshell登陆步骤 一、Xshell登陆步骤 1.生成客户端的公钥私钥 2.生成公钥文件 3.生成私钥文件 4.将公钥传输进要登录的服务器中 5.修改公钥文件名为authorized_keys (authorized_keys是用于存储公钥的特殊文件,如果已经有了这份文件,可以在末尾追加) 6.连…

香橙派5plus上跑云手机方案二 waydroid

前言 上篇文章香橙派5plus上跑云手机方案一 redroid(带硬件加速)说了怎么跑带GPU加速的redroid方案&#xff0c;这篇说下怎么在香橙派下使用Waydroid。 温馨提示 虽然能运行&#xff0c;但是体验下来只能用软件加速&#xff0c;无法使用GPU加速&#xff0c;所有会很卡。而且…

差分算法中的F 和CR参数

自查使用。。F 类似梯度的大小 两者都用于种群中新个体的生成

Phospho:LLM应用的文本分析利器

今天向大家介绍phospho文本分析平台&#xff0c;专门为大型语言模型&#xff08;LLM&#xff09;应用程序设计。它可以帮助开发者从用户或应用程序的文本消息中检测问题、提取洞见、收集用户反馈&#xff0c;并衡量成功。作为一个开源项目&#xff0c;phospho允许开发者查看和修…

智慧城市的建设乃民之福音,建议普及这一技术

**智慧城市的建设乃民之福音&#xff0c;建议普及这一技术** 智慧城市已成为城市现代化的关键。智慧城市的建设不仅提高了城市管理的效率&#xff0c;还为市民带来了诸多便利。因此&#xff0c;我们应当积极推广并普及智慧城市技术&#xff0c;让这一福祉惠及更多民众。 如需…

圆屋顶下,神的盛宴

你有没有想过&#xff0c;自己头顶的是什么&#xff1f; 其实&#xff0c;有很多种可能&#xff1a; 比如&#xff0c;你头顶的当然就是你的头发&#xff1b;但也有可能你剃了个光头&#xff0c;所以你的头顶是秃的&#xff0c;不过没关系&#xff0c;你如果在房间里&#xff…

android13 cat /proc/cupinfo没有Serial问题

1.前言 我们有些客户是使用cpuinfo节点去获取系统的cpuid的,如下: cat /proc/cupinfo processor : 0 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU impleme…

godis源码分析——Redis协议解析器

前言 redis这个目录下的所有代码就是为了一个事情&#xff0c;就是适配redis。 流程 redis下的基本流程 源码 在redis/client/client.go 主要是客户端处理 package clientconst (created iotarunningclosed )type B struct {data chan stringticker *time.Ticker }// …

ubuntu 上vscode +cmake的debug调试配置方法

在ubuntu配置pcl点云库以及opencv库的时候&#xff0c;需要在CMakeLists.txt中加入相应的代码。配置完成后&#xff0c;无法调试&#xff0c;与在windows上体验vs studio差别有点大。 找了好多调试debug配置方法&#xff0c;最终能用的有几种&#xff0c;但是有一种特别好用&a…

‘wget‘ 不是内部或外部命令,也不是可运行的程序

在Windows环境下创建了虚拟环境并安装了wget包&#xff0c;但在使用该命令的时候仍然报错&#xff0c;‘wget’ 不是内部或外部命令,也不是可运行的程序 解决方案&#xff1a; 去官网下载对应位数的.exe文件&#xff0c;将其放在C:\Windows\System32目录下即可, 别下错版本&a…

常见WAF拦截页面总结

(1) D盾 (2) 云锁 (3) UPUPW安全防护 (4) 宝塔网站防火墙 (5) 网防G01 (6) 护卫神 (7) 网站安全狗 (8) 智创防火墙 (9) 360主机卫士或360webscan (10) 西数WTS-WAF (11) Naxsi WAF (12) 腾讯云 (13) 腾讯宙斯盾 (14) 百度云 图片 (15) 华为云 (16) 网宿云 (17) 创宇盾 图片 (…

首届UTON区块链开发者计划大会在马来西亚圆满落幕

7月9日&#xff0c;首届UTON区块链开发者计划大会在马来西亚吉隆坡成功举办&#xff01; 来自全球顶尖的行业领袖、技术精英和众多区块链爱好者参与了此次盛会&#xff0c;也标志着UTON区块链生态进入了一个全新的发展阶段。 会上&#xff0c;UTON区块链创始人之一唐毅先生以“…

leetcode:1332. 删除回文子序列(python3解法)

难度&#xff1a;简单 给你一个字符串 s&#xff0c;它仅由字母 a 和 b 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符&#xff08;字符串为空&#xff09;的最小删除次数。 「子序列」定义&#xff1a;如果一个字符串可以通过删除原字…

Qt开发 | qss介绍及控件应用 | qss加载方式 | 控件提升 | 鼠标位置与控件位置 | 搜索编辑框 | tab在左文本水平的tabWidget

文章目录 一、qss简介与应用二、QLineEdit qss介绍与使用三、QPushButton qss1.常用qss1.1 基本样式表1.2 背景图片1.3 图片在左文字在右 2.点击按钮弹出菜单以及右侧箭头样式设置3.鼠标悬浮按钮弹出对话框 四、QCheckBox qss妙用&#xff1a;实时打开关闭状态按钮五、QComboBo…

react基础语法,模板语法,ui渲染,jsx,useState状态管理

创建一个react应用 这里使用create-react-app的脚手架构建项目&#xff08;结构简洁&#xff0c;基于webpack-cli&#xff09;&#xff0c; npx create-react-app [项目名称] 使用其他脚手架构建项目可以参考&#xff1a;react框架&#xff0c;使用vite和nextjs构建react项目…

ch552g中使用SPI进行主从机通信时发现的问题

参考 基本硬件准备 两块独立的ch552g的板子&#xff0c;开始连接时数据传输出现数据错误&#xff0c;本来猜想是通信线连接问题&#xff0c;后来用了较短的连接线依然没有改善。 SPI通信的认知 SPI一般都是全双工实时通信&#xff0c;所以在发送数据时一般有短暂的停留使得…

echarts使用自定义图形实现3D柱状图

先看下效果吧 实现思路 使用graphic创建并注册自定义图形。根据每组的数据值&#xff0c;得到一个对应的点&#xff0c;从点出发用canvas绘制一组图形&#xff0c;分别为 顶部的菱形 const CubeTop echarts.graphic.extendShape({buildPath: function (ctx, shape) {const c1…