20220907得帆云数据库刷写经验记录

本文详细介绍了如何在得帆云数据库结构特殊,缺乏直接文字描述的情况下,为帆软报表实现中文显示。首先进行数据库和应用备份,接着整理静态选项编码与中文的对应关系,创建新的数据字典,并批量修改数据库中的编码。最后,修改字段为静态字典,确保在不丢失数据的前提下,实现了报表的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:最近碰到了一个问题,因为得帆云的数据库结构特殊,数据库中所存的其实都是表单或者数据字典关联的编码,很少有直接以文字形式存储的。在利用这部分数据做帆软报表时发现,由于部分下拉框使用的是静态的选项,既没有数据字典也没有表单依据,所以得帆云会给这些静态选项随机生成一些编码但没有可对照获得中文描述的数据库,此为得帆云的机制。
由于制作帆软报表并不能只显示编码,还是需要找到对应的中文,直接CASE WHEN 编码若未来增加选项会造成匹配问题,需要修改代码,所以决定是给这些本为静态选项的下拉框增加一个数据字典。然而生产机上有五百条用户逐条录入的数据,要求不能有任何损失或者丢失。因此产生了以下的解决方案。

1.备份生产机数据

使用navicat,右键需要备份的目标数据库,转储SQL文件->结构和数据
在这里插入图片描述将会得到一个.sql文件。如果需要恢复数据库+数据,就可以右键对象列表的空白处,选择运行sql文件后,点击备份数据得到的sql文件即可恢复数据。

2.备份得帆云应用

因为如果需要将该字段的下拉选项由静态选项改为数据字典,则需要删除该下拉框重新配置。然而如果数据出现问题,需要恢复原貌(静态选项)时,再去新建一个下拉选项为静态的下拉框时,选项对应的编码会再次改变。这样一来,即使数据库的数据可以恢复,数据库中存储的编码与新产生的静态选项编码对不上号,无法显示正确内容。
但如果备份得帆云应用,产生问题需要恢复时,通过导入应用来恢复配置,则编码规则不变。
备份步骤如下:
1.导出应用、数据字典、角色管理
2.恢复时将应用导入,检查数据
3.发布应用
4.验证功能

3.批量修改数据库数据

1.找到静态选项对应的编码

在进入表单的设置页面,点击目标静态选项的下拉框后,从开发者模式的Network处可以看到后端发送的该静态选项的编码。
在这里插入图片描述在这里插入图片描述将该编码和对应的中文整理出来,
在这里插入图片描述补充:该位置在点击打开页面配置时,发送的该请求,层级为:
data->detailPage->formComponents->对应框->chooseOptions
在这里插入图片描述

2.将新建的数据字典的编码和中文对应起来

我在应用中新建了需要用到的数据字典,然后将编码和前面获得的随机编码对应起来
在这里插入图片描述就得到了如下的对应关系
在这里插入图片描述

3.数据库批量修改

数据库内存储的是静态选项的随机编码
在这里插入图片描述使用下列的sql语句

UPDATE 数据表名
SET 目标字段名=
CASE
        目标字段名
        WHEN '["qqqso"]' THEN '["op1"]'
        WHEN '["HrKbm"]' THEN '["op2"]'
        WHEN '["u3zpY"]' THEN '["op3"]'
    END

在这里插入图片描述
再刷新目标数据表,就会发现数据被我们批量修改了
在这里插入图片描述再回到得帆云的页面可以看到,由于这个修改后的编码和旧的静态选项编码对应不上,已经显示不出正确的选项中文
在这里插入图片描述

4.修改该字段为静态字典

打开对应页面设置,删除原有的下拉框,然后设置选项来源为新建的数据字典然后保存。此处还需要将新的下拉框指向原表单的对应模型字段。因为我测试的时候,测试应用忘记建立模型了,所以再拖入新的下拉框以后,没法指向原有的字段了,但是我在别的有模型的应用上测试是可行的。保存这个设置后,再查看页面的数据,可以显示正确的中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值