达梦数据库适配
达梦数据库(DM8)适配指南
本项目支持使用达梦数据库(DM8)作为后端存储,适用于国产化部署需求。本文档说明如何在项目中配置并运行达梦数据库。
1. 安装达梦数据库
请前往达梦官网下载安装最新版 DM8:
建议使用正式版,测试版或旧版本可能存在兼容性问题。
2. 项目连接配置
项目中已内置达梦 JDBC 驱动,无需手动添加。相关 Maven 依赖如下:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
</dependency>
在 application.yml 中配置数据源:
spring:
datasource:
url: jdbc:dm://192.168.1.6:30236/TDUCKX # 请替换为实际地址、端口、库名
username: SYSDBA
password: SYSDBA_dm001
driver-class-name: dm.jdbc.driver.DmDriver
3. 初始化数据库
进入项目目录 tduck-x-platform/doc/db/,执行以下 SQL 文件进行初始化:
dm8-tduck2.4.sql
如果项目版本更新,请根据 update_xx.sql 进行差异更新。
4. Flowable 流程引擎适配(可选)
如果不使用流程引擎功能,可跳过此步骤。
Flowable 是开源工作流组件,原生不支持达梦数据库,需手动补丁以完成适配。
补丁步骤:
- 复制以下目录下的全部文件至工作流模块中:
tduck-x-platform/doc/dm/flowable-patch/src
→ 复制到 →
tduck-x-platform/tduck-workflow/src
- 关闭 Flowable 自动建表功能,编辑配置文件:
flowable:
database-schema-update: false
async-executor-activate: false
参考文章:Flowable + 达梦数据库兼容适配
5. 常见问题
问题:Liquibase 报错 LockException
报错信息:
Error executing SQL UPDATE FLW_EV_DATABASECHANGELOGLOCK ...
数据类型不匹配
原因:Flowable 默认使用 Oracle 语法生成表,与达梦部分 SQL 不兼容。
解决方法:关闭 database-schema-update 自动建表配置,手动建表后再运行程序。
6. 总结建议
| 项目项 | 支持状态 | 说明 |
|---|---|---|
| JDBC 驱动 | 已内置 | 使用DmJdbcDriver18 |
| 自动建表支持 | 不支持 | Flowable 需关闭自动建表 |
| 初始化 SQL | 已提供 | 使用dm8-tduck2.4.sql |
| 流程功能支持 | 需补丁 | 提供补丁源码,需手动集成 |
如不使用流程模块,可直接使用达梦作为主库,无需进行流程补丁处理。