达梦数据库(DM)在 Spring Boot 中使用 Liquibase 和 Flowable 工作流

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

参考文档

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 工程。

Spring Boot 3.0版本中集成Flowable工作流引擎通常涉及以下几个步骤: 1. 添加依赖:首先,你需要在你的项目中添加Flowable的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下内容: ```xml <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 确保替换`最新版本号`为Flowable的最新稳定版本。 2. 配置应用:在application.properties或application.yml文件中配置Flowable的相关信息,例如数据库连接、流程定义仓库等。 ```yaml flowable.datasource.url=jdbc:mysql://localhost:3306/flowable_db flowable.datasource.username=root flowable.datasource.password=your_password ``` 3. 创建启动类:如果尚未创建,需要在启动类上添加`@EnableProcessEngine`注解,启用FlowableSpring Boot支持。 ```java @SpringBootApplication @EnableProcessEngine public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 4. 流程定义:你可以将流程定义放在资源文件夹下,然后通过`FlowableRepositoryService`服务来部署流程到数据库。 5. 使用API:一旦流程引擎初始化完成,你就可以在Spring Boot应用中调用Flowable API来管理任务、启动流程实例等。 ```java ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration().buildProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); // 执行流程 String processInstanceId = runtimeService.startProcessInstanceByKey("your-process-key"); ``` 记得在实际项目中,还需要处理异常日志管理,以及权限控制等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值