华为 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 🈯✅

参考文档

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 结构的脚本(如存储过程、函数、包)必须添加 /。

其他文档

完整的基础使用示例参考代码仓库中,各自的 demo 工程。

相关推荐
m0_7482509341 分钟前
SQL Server Management Studio的使用
数据库·oracle·性能优化
车载诊断技术43 分钟前
人工智能AI在汽车设计领域的应用探索
数据库·人工智能·网络协议·架构·汽车·是诊断功能配置的核心
没有十八岁1 小时前
云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书
java·数据库·spring·汽车
小萌新上大分1 小时前
Minio搭建并在SpringBoot中使用完成用户头像的上传
java·spring boot·后端·minio·minio搭建·头像上传·minio入门
B站计算机毕业设计超人2 小时前
计算机毕业设计SpringBoot+Vue.js校园失物招领系统(源码+文档+PPT+讲解)
java·vue.js·spring boot·后端·毕业设计·课程设计·毕设
计算机-秋大田2 小时前
基于SpringBoot的环保网站的设计与实现(源码+SQL脚本+LW+部署讲解等)
java·vue.js·spring boot·后端·课程设计
汤姆yu2 小时前
基于springboot的高校物品捐赠系统
java·spring boot·后端·高校物品捐赠
爱搞技术的猫猫2 小时前
微店商品详情API接口实战指南:从零实现商品数据自动化获取
大数据·linux·运维·数据库·自动化
大地爱2 小时前
如何使用Spring Boot框架整合Redis:超详细案例教程
spring boot·redis·后端
若云止水3 小时前
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数 - 详解(1)
数据库·nginx·ubuntu