人大金仓适配

Kingbase 数据库适配指南

本文档介绍如何在 tduck-x-platform 项目中集成国产数据库 KingbaseES(人大金仓),当前测试版本为 V009R001C002B0014


1. 使用 Docker 安装 KingbaseES

Kingbase 提供 Docker 镜像部署方式,可快速完成测试环境搭建。

官方安装文档地址:Docker 安装指南

示例安装命令:

docker run -tid --privileged \
  -p 4321:54321 \
  -v /mnt/data:/home/kingbase/userdata/ \
  -e NEED_START=yes \
  -e DB_USER=kingbase \
  -e DB_PASSWORD=123456 \
  -e DB_MODE=oracle \
  --name kingbase \
  kingbase_v009r001c002b0014_single_x86:v1

推荐使用 Oracle 模式:-e DB_MODE=oracle


2. 创建数据库

使用Navicat或者其他工具

地址:localhost(或你的主机 IP)

  • 端口:4321
  • 用户名:kingbase
  • 密码:123456
  • 数据库类型:PostgreSQL
  • 模式选择:public

创建数据库名称建议统一为:tduckx

Navicat可以用PgSql的模式链接上去 导入sql的时候把这两个取消,不然会报错

图片

3. 项目配置修改

在项目的配置文件中进行数据库连接配置(application.yml):

spring:
  datasource:
    url: jdbc:kingbase8://192.168.1.6:4321/tduckx?currentSchema=public,SYS_CATALOG
    username: kingbase
    password: 123456
    driver-class-name: com.kingbase8.Driver

flowable:
  database-schema-update: false
  async-executor-activate: false

说明:

  • currentSchema=public,SYS_CATALOG 是 Kingbase 要求,必须保留
  • database-schema-update: false 禁止 Flowable 自动建表(防止语法不兼容)

4. Flowable 适配补丁(流程引擎使用)

由于 Flowable 原生不兼容 Kingbase,需要应用补丁:

操作步骤:

将以下目录中的源码文件复制到工作流模块:

复制自:
tduck-x-platform/doc/kingbase/flowable-patch/

复制到:
tduck-x-platform/tduck-workflow/src/

确保不漏文件。补丁包含了适配 Kingbase 的建表 SQL 与 Java 代码。


5. 常见问题

问题:连接报错或流程启动失败?

请检查以下几点:

  • 数据库连接字符串是否正确(特别是 currentSchema
  • 是否关闭了 Flowable 的自动建表功能
  • Flowable 补丁是否完整复制

小结

项目项 状态 说明
JDBC 驱动 已集成 使用com.kingbase8.Driver
自动建表支持 不支持 Flowable 不兼容,需手动建表
补丁支持 已提供 需复制flowable-patch补丁
模式建议 Oracle模式 推荐使用 Oracle 兼容模式部署