达梦数据库适配

达梦数据库(DM8)适配指南

本项目支持使用达梦数据库(DM8)作为后端存储,适用于国产化部署需求。本文档说明如何在项目中配置并运行达梦数据库。


1. 安装达梦数据库

请前往达梦官网下载安装最新版 DM8:

官方下载地址:https://www.dameng.com/DM8.html

建议使用正式版,测试版或旧版本可能存在兼容性问题。


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 是开源工作流组件,原生不支持达梦数据库,需手动补丁以完成适配。

补丁步骤:

  1. 复制以下目录下的全部文件至工作流模块中:
tduck-x-platform/doc/dm/flowable-patch/src
→ 复制到 →
tduck-x-platform/tduck-workflow/src
  1. 关闭 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
流程功能支持 需补丁 提供补丁源码,需手动集成

如不使用流程模块,可直接使用达梦作为主库,无需进行流程补丁处理。