华为 Open Gauss 数据库在 Spring Boot 中使用 Flyway
db-migration:Flyway、Liquibase 扩展支持达梦(DM)、南大通用(GBase 8s)、OpenGauss 等国产数据库。部分数据库直接支持 Flowable 工作流。
开源代码仓库 Github:https://github.com/mengweijin/db-migration
开源代码仓库 Gitee:https://gitee.com/mengweijin/db-migration
已支持
- 达梦(DM 8):支持 Flyway 和 Liquibase,支持 flowable 工作流。
- 南大通用(GBase 8s):支持 Flyway 和 Liquibase。
- OpenGauss:支持 Flyway,Liquibase 可直接使用 postgres 驱动得到支持。
- 人大金仓(Kingbase):可直接使用 postgres 驱动得到支持,无需依赖 db-migration 项目。
版本说明
- ❌❌:不支持;
- 🈯✅:flyway 或 liquibase 需要指定特定版本才支持;
- ❄️✅:flyway 或 liquibase 不需要指定版本就支持(不指定版本,则默认使用的 spring boot 默认版本);
| db-migration 版本 | spring boot 版本 | flyway 版本 | liquibase 版本 |
|---|---|---|---|
| 2.0.8 | 2.0.x.RELEASE | 7.15.0 ❌❌ | 4.27.0 ❌❌ |
| 2.0.8 | 2.1.x.RELEASE | 7.15.0 ❌❌ | 4.27.0 🈯✅ |
| 2.0.8 | 2.2.x.RELEASE | 7.15.0 ❌❌ | 4.27.0 🈯✅ |
| 2.0.8 | 2.3.x.RELEASE | 7.15.0 ❌❌ | 4.27.0 🈯✅ |
| 2.0.8 | 2.4.x | 7.15.0 🈯✅ | 4.27.0 🈯✅ |
| 2.0.8 | 2.5.x | 7.15.0 🈯✅ | 4.27.0 🈯✅ |
| 2.0.8 | 2.6.x | 8.0.4 ❄️✅ | 4.27.0 🈯✅ |
| 2.0.8 | 2.7.x | 8.5.11 ❄️✅ | 4.27.0 🈯✅ |
| 2.0.8 | 3.0.x | 9.5.1 ❄️✅ | 4.27.0 🈯✅ |
| 2.0.8 | 3.1.x | 9.16.3 ❄️✅ | 4.27.0 🈯✅ |
| 2.0.8 | 3.2.x | 9.22.3 ❄️✅ | 4.27.0 🈯✅ |
| 2.0.8 | 3.3.x | 10.10.0 ❄️✅ | 4.27.0 ❄️✅ |
| 2.0.8 | 3.4.x | 10.10.0 🈯✅ | 4.27.0 🈯✅ |
参考文档
- 【达梦 DM DBMS】 使用 Flyway
- 【达梦 DM DBMS】 使用 Liquibase 和 Flowable 工作流
- 【南大通用 GBase 8s】 使用 Flyway
- 【南大通用 GBase 8s】 使用 Liquibase
- 【华为 OpenGauss】 使用 Flyway
- 【华为 OpenGauss】 使用 Liquibase
- 【人大金仓 Kingbase】 使用 Flyway 的示例工程
- 【人大金仓 Kingbase】 使用 Liquibase 的示例工程
Flyway 对 PL/SQL 的支持
Oracle 的存储过程、触发器、函数等 PL/SQL 代码块需以 / 符号结尾,告知 SQL 引擎执行该代码块。
因此,在 Flyway 中执行 Oracle 存储过程脚本时,必须在 PL/SQL 块的末尾添加 / 符号,以明确表示代码块的结束。 这是 Oracle 数据库对 PL/SQL 语法解析的要求,Flyway 在执行脚本时同样需要遵循这一规则。
Flyway 默认使用普通 SQL 解析器执行脚本,而 Oracle 的 PL/SQL 块需要明确的分隔符。添加 / 符号能帮助 Flyway 识别代码块边界。
例如在创建存储过程或触发器时:
CREATE OR REPLACE PROCEDURE test_proc AS
BEGIN-- 存储过程逻辑。此处略。
END;
/CREATE TRIGGER test_trig AFTER INSERT ON test_user
BEGINUPDATE test_user SET name = CONCAT(name, 'triggered');
END;
/
与普通 SQL 脚本的区别:
普通的 DDL(如建表)或 DML(如插入数据)脚本无需 / 符号,因为它们不是多行代码块。 例如:
CREATE TABLE users (id NUMBER PRIMARY KEY);
INSERT INTO users VALUES (1);
但涉及 PL/SQL 结构的脚本(如存储过程、函数、包)必须添加 /。
其他文档
- Oracle 清理 Flowable 7.0.1 所有表脚本
- MySQL、Oracle、PostgreSQL 等数据库使用Flyway 的温馨提示
完整的基础使用示例参考代码仓库中,各自的 demo 工程。
相关文章:
华为 Open Gauss 数据库在 Spring Boot 中使用 Flyway
db-migration:Flyway、Liquibase 扩展支持达梦(DM)、南大通用(GBase 8s)、OpenGauss 等国产数据库。部分数据库直接支持 Flowable 工作流。 开源代码仓库 Github:https://github.com/mengweijin/db-migrat…...
汽车电子电控软件开发中因复杂度提升导致的架构恶化问题
针对汽车电子电控软件开发中因复杂度提升导致的架构恶化问题,建议从以下方向进行架构优化和开发流程升级,以提升灵活性、可维护性和扩展性: 一、架构设计与模块化优化 分层架构与模块解耦 采用AUTOSAR标准的分层架构(应用层、运行…...
VMware Ubuntu 共享目录
在VMware中挂载Ubuntu共享目录需要以下步骤,分为设置共享文件夹和在Ubuntu中挂载两部分: 一、VMware 设置共享文件夹 关闭Ubuntu虚拟机 在配置前,建议先关闭虚拟机(若已运行需关闭,部分VMware版本支持热添加࿰…...
Linux安装jdk,node,mysql,redis
准备工作: 1.安装VMware软件,下载CentOs7镜像文件,在VMware安装CentOs7 2.宿主机安装Xshell用来操作linux 3. .宿主机安装Xftp用来在宿主机和虚拟机的linux传输文件 案例1:在 /home/soft文件夹解压缩jdk17,并配置环…...
Excel工作圈小工具一个集合了大量Excel功能的绿色工具软件
Excel工作圈小工具 一个集合了大量Excel功能的绿色工具软件,可以大大加强生产效率~ 软件虽然看起来比较简陋,但功能却是十分丰富。无需联网即可运行,而且兼容WPS和MS office各版本。 以下是软件的功能详细截图。 总的来说功能挺丰富&#…...
DeepSeek实操教程(清华、北大)
文末清华大学及北京大学DeepSeek下载地址 1. 地址 2. 提示词 模板:我要(做)xxx,要给xxx用,希望达到xxx效果,但担心xxx问题 3. 软件联动 基本原则:Deepseek生成内容,以其它软件…...
模拟退火算法浅尝
简介 其是模拟物理退火过程而演升出的算法,物理退火过程包含加温过程,等温过程,冷却过程。 模拟退火(SA) 初始设定为高温状态,看作是在解空间进行广域搜,处于低温状态时,看作是在解空间中作局部领域搜索…...
React:B站评论demo,实现列表渲染、删除按钮显示和功能实现、导航栏渲染切换及高亮显示、评论区的排序
功能要求: 1、渲染评论列表 2、删除评论功能:只显示自己评论的删除按钮;点击删除按钮,删除当前评论,列表中不再显示。 3、渲染导航Tab(最新 | 最热)和其 高亮实现 4、评论排序功能实现&…...
支持IPD项目管理的9大系统,哪款工具能有效提高项目控制能力
本文介绍了以下9大系统: 1.Worktile; 2. 腾讯敏捷开发平台(TAPD); 3. 简道云(Jiandaoyun); 4. 蓝鲸智云(BlueWhale); 5. 轻流(Qingflow࿰…...
4070Super安装GPU版本pytorch记录
一些啐啐念。 安装LLaMA-Factory时遇到pytorch安装成CPU版本。网上找了一圈攻略,都是下载龟速。挂梯子也一样。最后在尝试用pytorch官网的生成的命令进行安装时,突然奇想,直接把安装日志显示的下载链接复制到浏览器下载,发现可以满…...
SpringBoot 端口配置
在Spring Boot中,配置应用程序的监听端口有多种方式。以下是常见的几种方法: 1. 通过 application.properties 或 application.yml 文件配置 application.properties server.port8081application.yml server:port: 8081如果没有显式配置 server.port…...
Linux网络相关概念和重要知识(1)(网络协议、网络通信)
目录 1.网络协议 (1)网络的起源 (2)为什么需要协议 (3)协议分层及其设计的解耦 (4)OSI定义的七层网络模型 ①分层及其功能 ②TCP/IP协议 ③传输层协议(TCP和UDP&a…...
go前后端开源项目go-admin,本地启动
https://github.com/go-admin-team/go-admin 教程 1.拉取项目 git clone https://github.com/go-admin-team/go-admin.git 2.更新整理依赖 go mod tidy会整理依赖,下载缺少的包,移除不用的,并更新go.sum。 # 更新整理依赖 go mod tidy 3.编…...
爬虫系列之发送请求与响应《一》
一、请求组成 1.1 请求方式:GET和POST请求 GET:从服务器获取,请求参数直接附在URL之后,便于查看和分享,常用于获取数据和查询操作 POST:用于向服务器提交数据,其参数不会显示在URL中,而是包含在…...
【数据挖掘】Matplotlib
Matplotlib 是 Python 最常用的 数据可视化 库之一,在数据挖掘过程中,主要用于 数据探索 (EDA)、趋势分析、模式识别 和 结果展示。 📌 1. Matplotlib 基础 1.1 安装 & 导入 # 如果未安装 Matplotlib,请先安装 # pip instal…...
AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题目翻译
由于我发现网上很少有人会发很久之前AtCoder Beginner Contes的题,所以我打算从AtCoder Beginner Contest 001开始写。大约两周一更,需要的可以订阅专栏,感谢支持Thanks♪(・ω・)ノ →题目讲解 A - 積雪深差 …...
安全测试之五:SQL Server注入漏洞几个实例
示例 1:在 GET 请求中测试 SQL 注入 最简单且有时最有效的情况是针对登录页面进行测试。当登录页面请求用户输入用户名和密码时,攻击者可以尝试输入以下字符串 “ or 11”(不包含双引号): https://vulnerable.web.ap…...
如何在Github上面上传本地文件夹
前言 直接在GitHub网址上面上传文件夹是不行的,需要一层一层创建然后上传,而且文件的大小也有限制,使用Git进行上传更加方便和实用 1.下载和安装Git Git - Downloads 傻瓜式安装即可 2.获取密钥对 打开自己的Github,创建SSH密钥&…...
多Agent协作智能系统
多Agent协作智能系统商业计划书 ——基于文心大模型的虚拟世界协作解决方案 第一章 执行摘要 1.1 项目背景 技术驱动:文心大模型4.0工具版的推出标志着AI从“问答”向“行动”的跨越,多Agent协作成为复杂任务自动化的核心范式。市场需求:据Global Market Insights报告,20…...
第J1周:ResNet50算法(Tensorflow版)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: TensorFlow (二)具体…...
基于深度学习的田间杂草检测系统(YOLOv12/v11/v8/v5模型)(源码+lw+部署文档+讲解等)
摘要田间杂草的生长不仅会影响作物的产量和质量,还会对农田管理造成巨大挑战。传统的杂草检测方法多依赖人工观察,效率低下且受主观因素影响。为了提高田间杂草的检测效率与准确性,本文提出了一种基于深度学习的田间杂草检测系统,…...
如何利用 SEO 工具提取网站的外部链接
如何利用 SEO 工具提取网站的外部链接 在当今竞争激烈的网络环境中,外部链接(即指向你网站的其他网站的链接)已经成为提升网站搜索引擎排名的重要因素。利用 SEO 工具提取网站的外部链接,不仅能帮助你更好地了解你的网站链接情况…...
软件开发常见骗局有哪些?
虚假高薪招聘陷阱以“零经验高薪入职”“包就业”为噱头,要求求职者付费培训。实际培训内容质量低下,承诺的就业机会无法兑现,甚至诱导贷款支付培训费用。外包项目诈骗谎称有高额预算项目外包,要求开发者支付“保证金”或“预付款…...
thinkphp8官方文档
以下是ThinkPHP 8官方文档的核心内容和相关资源整理:官方文档入口ThinkPHP 8的官方文档可通过其官网访问,文档地址为:https://www.thinkphp.cn/doc主要文档内容ThinkPHP 8文档包含完整的框架使用指南,涵盖安装、配置、路由、控制器…...
雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南:xinference.log日志错误排查大全
雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南:xinference.log日志错误排查大全 部署一个AI文生图模型,最让人头疼的往往不是写提示词,而是服务启动时那一串串让人摸不着头脑的日志。特别是当你满怀期待地部署“雯雯的后宫-造相Z-Image-瑜伽…...
Cogito-v1-preview-llama-3B高性能:vLLM Serving + OpenAI兼容API部署教程
Cogito-v1-preview-llama-3B高性能:vLLM Serving OpenAI兼容API部署教程 1. 引言:为什么选择Cogito模型? 如果你正在寻找一个既强大又实用的语言模型,Cogito-v1-preview-llama-3B绝对值得关注。这个模型在同等规模的开源模型中…...
驱动模块的加载与卸载机制
昨天调板子又遇到个怪事:insmod加载驱动一切正常,但rmmod死活卸载不掉,内核日志里只留下一行“Device or resource busy”。查了半小时才发现,原来是有个用户态进程没关,一直占着驱动文件。这种问题在嵌入式开发里太常…...
快速启动Tensorboard并解决本地端口访问问题的实战指南
1. Tensorboard快速启动指南 Tensorboard是TensorFlow生态中不可或缺的可视化工具,它能直观展示模型训练过程中的损失曲线、准确率、计算图等重要信息。但很多新手在第一次使用时,常常卡在启动后无法访问的环节。这里分享我调试过上百个模型总结出的启动…...
臭氧污染成因难辨?EKMA曲线+OZIPR模型实战,手把手教你锁定O₃关键前体物!
在大气臭氧(O₃)污染已成为制约我国环境空气质量改善的核心瓶颈的当下,精准识别O₃生成的关键前体物(NOₓ与VOCs),是制定科学减排策略、破解“臭氧污染成因复杂、控制因子难辨”困境的核心前提。EKMA曲线作…...
万象视界灵坛惊艳效果:上传模糊图片仍准确返回‘雨夜霓虹’‘80年代复古’等高阶语义
万象视界灵坛惊艳效果:上传模糊图片仍准确返回雨夜霓虹80年代复古等高阶语义 1. 突破传统视觉识别的智能平台 在数字内容爆炸式增长的今天,如何从海量视觉数据中快速提取有价值的信息成为一大挑战。传统图像识别技术往往受限于预设分类体系,…...
