工作流(达梦适配)
使用达梦数据库时,Flowable 工作流需要额外安装达梦补丁。开始前,请先按 《国产信创数据库》 的「DM 达梦数据库」小节完成数据库安装、数据导入和数据源配置即可,无需在安装补丁前让各服务正常启动。
# 1. 获取并选择补丁
达梦补丁统一维护在单体项目 ruoyi-vue-pro (opens new window) master-jdk17 分支的 sql/dm/ 目录,微服务项目直接从这里获取。微服务项目自己的 sql/dm/ 目录中没有这两套补丁,请不要使用其中的 flowable-patch 目录。
补丁按 Flowable 版本区分,不由 JDK 版本单独决定。先查看微服务项目 yudao-dependencies/pom.xml 中的 flowable.version,再选择补丁目录:
| 微服务项目版本 | Flowable 版本 | 补丁目录 |
|---|---|---|
master(JDK8) | 6.8.0 | flowable-patch-6.8.0 |
| JDK17、JDK25、SB4 | 8.0.0 | flowable-patch-8.0.0 |
两套补丁只适用于表中的 Flowable 版本。
# 2. 合并补丁
① 将补丁目录中的 src/main/java 合并到 yudao-module-bpm/yudao-module-bpm-server/src/main/java 的同名目录。
② 仅 6.8.0:再将补丁的 src/main/resources 合并到 yudao-module-bpm/yudao-module-bpm-server/src/main/resources。如果模块中已经有 META-INF/services/liquibase.database.Database 文件,只追加 liquibase.database.core.DmDatabase 一行,不要删除已有内容,也不要覆盖整个资源目录。
③ 仅 6.8.0:在 yudao-module-bpm-server 的 pom.xml 增加以下依赖,无需填写版本,由项目的 Spring Boot BOM 管理:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
注意
8.0.0 补丁只有 Java 配置,不要添加上述 Liquibase 依赖,也不要使用 6.8.0 补丁的资源文件,否则会导致 BPM 服务启动失败。也不需要通过 spring.liquibase.enabled=false 规避。
# 3. 配置数据源
将 BPM 服务的数据源驱动配置为 dm.jdbc.driver.DmDriver,连接地址使用 jdbc:dm://主机:5236,并配置应用数据库账号(本地开发见 yudao-module-bpm-server 的 application-local.yaml,使用配置中心时在对应配置中修改)。
补丁会自动识别工作流连接的是达梦数据库,不需要额外添加 yudao.dameng.enabled 等开关,也不影响业务 Mapper 已有的达梦适配。业务账号无需授予 DBA 权限。
# 4. 启动项目
确认 yudao-module-bpm-server 的 application.yaml 中 flowable.database-schema-update 为 true,执行 Maven clean 后重新构建并启动 BPM 服务,Flowable 会在空的工作流 schema 中自动建表。之后重复启动保持 true 即可;生产环境如需由部署流程管理表结构,可在建表完成后改为 false。
启动后,通过网关在管理后台完成一次流程部署、发起和审批,确认工作流正常使用。
补丁测试
补丁的独立回归测试工程位于单体项目,使用方式见 flowable-patch-tests/README.md (opens new window),普通使用无需运行。
# 5. 常见问题
# 5.1 达梦开启了 MySQL 兼容模式,工作流方言要改成 mysql 吗?
不要。DM 的 COMPATIBLE_MODE 是数据库配置,与 Flowable 使用的方言不是同一个设置,补丁已为达梦设置好 Flowable 方言。改成 mysql 可能导致建表、分页、字段类型出错。
相关讨论:Flowable 8.0 达梦补丁 (opens new window)、达梦兼容模式与工作流方言 (opens new window)。早期适配由开发者(微信号 barry82)贡献,参考 Flowable 6.8 达梦适配文章 (opens new window)。