【数据库】kingbase数据库

kingBase数据库

之前做过mysql国产化,人大金仓数据库的数据迁移和适配,大部分忘记了,这边补充下当时的一些思路和笔记

背景:

当时项目要求国产化,mysql数据库迁移到人大金仓kingbase。原项目是springboot+mysql+activiti的一个工作流项目。

一、数据库搭建

具体搭建步骤忘记了,需要注意系统版本和kingbase版本适配,具体需要询问金仓的人

二、初始化脚本

当时想了两个方案

1)根据mysql建库脚本手动改成kingbase脚本 ,比较麻烦

2)用金仓提供的数据迁移工具,将mysql迁移到kingbase,然后导出成sql脚本

推荐方式二,因为初始化脚本很多字段需要一一匹配很麻烦。迁移的时候要注意一些字段的转换,以及activiti框架初始建表的blob数据类型,编码方式不一致,手动无法生成,一定要数据迁移过去再导出。

三、框架适配

1)activiti框架

可以参考kingbase官方给的文档,网上可以找到。主要是 修改activitiConfig配置类方言,改成postgreSql的形式 和 初始建库脚本,因为项目的activiti表不通过框架创建,而是通过初始化脚本,所以省去这一步。

2)mybaties-plus框架

同样官方有适配文档,修改config类的方言,改成postgreSql就行

四、代码适配

代码上改动不大,主要是kingbase对比mysql数据类型的匹配更严格,比如旧代码中有部分mysql匹配不严格,比如:字段integer类型,用string类型的值去匹配也能查出来。但是kingbase之后,必须将值转为integer类型。就是 :select id from xxx where status = ‘1’ ;在mysql 成功,在kingbase失败,一定要 select id from xxx where status = 1;

五、一些常用命令

脚本执行方式:
1、用root用户执行createdb.sql,建库建用户脚本
./home/kingbase/kingbase1/KESRealPro/V008R006C006B0013/Server/bin/ksql -h 127.0.0.1 --port 54321 -f createdb.sql -Uroot -a >> a.result

2、用assistance用户执行初始化和601数据库脚本
./home/kingbase/kingbase1/KESRealPro/V008R006C006B0013/Server/bin/ksql -h 127.0.0.1 --port 54321 -f V1.1.01501_init.sql -Uassistance -dassistance -a >> 1.result
./home/kingbase/kingbase1/KESRealPro/V008R006C006B0013/Server/bin/ksql -h 127.0.0.1 --port 54321 -f V1.1.01501.sql -Uassistance -dassistance -a >> 2.result
./home/kingbase/kingbase1/KESRealPro/V008R006C006B0013/Server/bin/ksql -h 127.0.0.1 --port 54321 -f V1.1.01601.sql -Uassistance -dassistance -a >> 3.result
./home/kingbase/kingbase1/KESRealPro/V008R006C006B0013/Server/bin/ksql -h 127.0.0.1 --port 54321 -f V1.1.01601_version.sql -Uassistance -dassistance -a >> 4.result

六、碰到问题

1、大小写适配问题
金仓字段名好像默认是不判断大小写,需要在数据库安装的时候选择配置

2、函数找不到
group_concat函数,mysql有这个函数,金仓没有。需要手动去编写生成函数,现在应该可以直接用gpt生成,方便很多。

3、integer(1)和boolean的转换
好像是这两个数据类型,反正需要配置一下适配

资料:

1)人大金仓官网有项目适配文档
2)数据库迁移工具和可视化工具
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值