找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 66|回复: 0

DM8数据库安装及数据迁移

[复制链接]

5

主题

0

回帖

23

积分

新手上路

积分
23
发表于 2025-11-7 17:45:50 | 显示全部楼层 |阅读模式
本帖最后由 super_qjl 于 2025-11-7 17:47 编辑

DM8配置迁移及常见问题1安装配置
1)安装时注意:PAGE_SIZE页大小为32;CASE_SENSITIVE大小写不敏感为0;
EXTENT_SIZE簇大小为32;UNICODE_FLAG字符集选项为UTF-8(本框架为“UTF-8”);
2)按照DM8文档安装完成后,默认登录账号SYSDBA 密码:SYSDBA。

3)通过修改DM数据库DM8的配置文件dm.ini中的COMPATIBLE MODE参数来实现与其他数据库的兼容性。步骤包括使用disq!工具设置参数为4以兼容MySQL,以及直接编辑dm.ini文件将参数设为0以取消兼容。重启数据库服务后,参数修改方能生效。
2数据迁移
1)迁移使用工具为SQLark;迁移前需要勾选以下所有项



2)默认值:('yyy-mm-dd')==>CURRENT_TIMESTAMP
double类型数据需要重新定义字段类型
3)alter 字段int改varchar报错、text改varchar报错、varchar改double、float、int等报错(int、double、float、text不需要定义长度手动修改表结构后继续迁移即可)。
3项目配置
service.conf 内容:
<pm name="dbtype">dm</pm> dbtype 全部小写 (mysql,dm)
<pm name="dburl">jdbc:dm://175.25.56.246:30236?schema=`UDSO`&clobAsString=1</pm>schema指定数据库 ;clobAsString解决text类型不能直接获取
<pmname="dbdriver">dm.jdbc.driver.DmDriver</pm> DM8驱动
<pm name="dbuser">UDSO</pm>
<pm name="dbpassword">Niuniu8$!!</pm>
4 其他差异4.1配置差异
1)问题DM数据库中 text类型不能解析
解决方法1:手动修改text类型为LONGVARCHAR(推荐)
解决方法2:service.conf 文件dburl的配置项中添加&clobAsString=1;
4.2 控制层差异
1)达梦添加和更新的返回key值不同(统一修改为mysql的返回形式)
insert一条数据返回值MySQL为{"GENERATED_KEY":"10075"};DM为{"AUTO_GEN_KEY":"10075"}
update返回值MySQL,reJson为空返回默认值为{"res":1};DM为reJson为{"AUTO_GEN_KEY":"10065"}
2)使用批量添加在单独的控制器中执行
解决:批量添加占用线程导致其他同控制器内方法不能执行。
3)时间类型问题:json.tojsonstring时时间转为时间戳,解决:JSON.toJSONStringWithDateFormat(page_list, "yyyy-MM-ddHH:mm:ss");
4)控制层编写sql给字段启别名时,当别名为数据库关键字时默认返回大写。例:selectcount(1) as count from xxx; 返回的则是COUNT;若想使用小写需要修改成:select count(1) as "count" from xxx;
5)控制层编写sql:错误形式:sql = ".... where a =\""+变量+"\" and name like\"%"+变量+"%\"";正确形式:sql = ".... where a = '"+变量+"'and name like '%"+变量+"%'"
4.3 model层差异
1)解决MySQL中可以添加更新数据,DM不可以更新数据。
   解决:框架DataActionsWrapperDM中处理已解决。
2)在model中拼写SQL语句使用IN传值为string时建议修改为  FIND_IN_SET(name,#{names});
3)执行操作表,添加字段及备注时,需先添加字段再执行添加备注sql(两条sql)
例:alter table add xxx int default null;// 添加字段
    comment tablename.xxx is ‘xxxxx’; // 添加备注
4)执行操作表,添加字段时,关键字字段名需用双引号或``包裹,否则DM自动转换成大写
例:alter table add comment int default null;数据库显示为COMMENT
alter table add “comment”/ `comment`  int default null;数据库显示为comment
4.4 web前端传值差异
1)前端传值时Int,float,double,datatime等字段严格遵循字符大意,不能在传值或者拼接字符串前后添加空格,DM数据库将会不识别。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|MICROBEE-BBS

GMT+8, 2025-12-3 11:05 , Processed in 0.055254 second(s), 21 queries .

Powered by Microbee-http

快速回复 返回顶部 返回列表