当前位置: 首页 > news >正文

华为 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.82.0.x.RELEASE7.15.0 ❌❌4.27.0 ❌❌
2.0.82.1.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.2.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.3.x.RELEASE7.15.0 ❌❌4.27.0 🈯✅
2.0.82.4.x7.15.0 🈯✅4.27.0 🈯✅
2.0.82.5.x7.15.0 🈯✅4.27.0 🈯✅
2.0.82.6.x8.0.4 ❄️✅4.27.0 🈯✅
2.0.82.7.x8.5.11 ❄️✅4.27.0 🈯✅
2.0.83.0.x9.5.1 ❄️✅4.27.0 🈯✅
2.0.83.1.x9.16.3 ❄️✅4.27.0 🈯✅
2.0.83.2.x9.22.3 ❄️✅4.27.0 🈯✅
2.0.83.3.x10.10.0 ❄️✅4.27.0 ❄️✅
2.0.83.4.x10.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
BEGIN
    UPDATE 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 工程。

相关文章:

  • 利用@WebMvcTest测试Spring MVC应用
  • 线程 -- 线程池
  • 开学季大学生如何备考微软MOS认证?
  • 中间件专栏之Redis篇——Redis中过期key删除和内存淘汰策略
  • 动态规划/贪心算法
  • 《UE5_C++多人TPS完整教程》学习笔记33 ——《P34 关卡与大厅之间的过渡(Transition Level And Lobby)》
  • 【网络安全 | 渗透测试】GraphQL精讲二:发现API漏洞
  • 【前端场景面试】登录鉴权实现方式详解
  • 学习第九天-栈
  • fastapi中的patch请求
  • windows本地部署DeepSeek实践
  • 【cuda学习日记】5.1 共享内存
  • 快检查达梦库怎么了
  • 不要升级,Flutter Debug 在 iOS 18.4 beta 无法运行,提示 mprotect failed: Permission denied
  • 数据库之PostgreSQL详解
  • 中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
  • 堆与二叉树
  • LVGL -------矩阵3
  • 计算机毕业设计SpringBoot+Vue.js智慧图书管理系统(源码+文档+PPT+讲解)
  • 安全测试之五:SQL Server注入漏洞几个实例
  • 足球比赛直播平台/seo优化专员编辑
  • 上海电商公司排名/安卓内核级优化神器
  • 网站开发 毕业答辩ppt/聊城seo优化
  • 棋牌网站代理/网页链接
  • 哈尔滨网站建设培训学校/今日军事新闻最新消息新闻
  • 东莞营销商城网站建设/开发app需要多少资金