CasDoor 达梦数据库信创适配项目

企业服务 云计算 案例ID:246379
多喝热水
5 年经验· 华峰
微信扫码沟通,客服可协助直接对接工程师;如当前档期不合,也可继续推荐相似案例作者。

案例介绍

1. XORM 数据库驱动层适配

CasDoor 使用 XORM 作为数据库 ORM 框架。达梦 8 的官方 Go 驱动基于 database/sql 接口实现,理论上可以与 XORM 集成。但在实际适配中,CasDoor 集成的 XORM 版本过低,无法与达梦驱动兼容。通过升级 XORM 依赖至最新版本,成功打通了 CasDoor 与达梦数据库的连接通道。

2. 数据库连接配置

采用达梦数据库驱动连接串格式 dm://用户名:密码@IP:端口/,在 CasDoor 配置文件中完成数据源配置。达梦数据库服务端需开启兼容模式,通过修改 dm.ini 配置文件中 COMPATIBLE_MODE=4 参数,实现对 MySQL 语法的兼容支持。

3. 日期字段兼容性修复

适配过程中遇到 CasDoor 看板页面的 getDashBoard 接口使用了日期条件查询,在达梦数据库中日期格式转换存在兼容性问题。CasDoor 将所有日期字段(如 created_time)定义为 varchar 类型以兼容不同数据库,但接口代码中仍以 Time 类型作为入参,导致类型不匹配。解决方案是将时间入参按格式转换为字符串,利用字典序进行比较,实现与 datetime 类型等效的日期操作。

4. 容器化部署交付

完成适配后,构建了支持 ARM64 与 AMD64 双架构的 Docker 镜像,并发布至 DockerHub。可通过环境变量 driverName=dm 与 dataSourceName 一键完成达梦数据库连接配置。

CasDoor 达梦数据库信创适配项目

企业服务 · 云计算 案例ID:246379
联系该工程师
微信扫码,建群沟通
作者: 多喝热水 - 5年经验- 华峰

案例介绍

1. XORM 数据库驱动层适配

CasDoor 使用 XORM 作为数据库 ORM 框架。达梦 8 的官方 Go 驱动基于 database/sql 接口实现,理论上可以与 XORM 集成。但在实际适配中,CasDoor 集成的 XORM 版本过低,无法与达梦驱动兼容。通过升级 XORM 依赖至最新版本,成功打通了 CasDoor 与达梦数据库的连接通道。

2. 数据库连接配置

采用达梦数据库驱动连接串格式 dm://用户名:密码@IP:端口/,在 CasDoor 配置文件中完成数据源配置。达梦数据库服务端需开启兼容模式,通过修改 dm.ini 配置文件中 COMPATIBLE_MODE=4 参数,实现对 MySQL 语法的兼容支持。

3. 日期字段兼容性修复

适配过程中遇到 CasDoor 看板页面的 getDashBoard 接口使用了日期条件查询,在达梦数据库中日期格式转换存在兼容性问题。CasDoor 将所有日期字段(如 created_time)定义为 varchar 类型以兼容不同数据库,但接口代码中仍以 Time 类型作为入参,导致类型不匹配。解决方案是将时间入参按格式转换为字符串,利用字典序进行比较,实现与 datetime 类型等效的日期操作。

4. 容器化部署交付

完成适配后,构建了支持 ARM64 与 AMD64 双架构的 Docker 镜像,并发布至 DockerHub。可通过环境变量 driverName=dm 与 dataSourceName 一键完成达梦数据库连接配置。

相似案例推荐

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在 1 小时内与您联系确认。

1小时精推人才

需求方专属客服,免费梳理匹配

需求方客服微信二维码
扫码加微信 · 客服人工对接
更多案例
微信沟通 客服 看中这位工程师了?客服帮你 1 小时对接沟通 → ×