数据库存储json型的数据会自动变成字符串

image
image
代码应该是没错的,因为之前写过没问题,但这次不行了,不知道是不是因为更新过插件?

1 个赞

我好像之前也遇到了这个奇怪的问题。不过删除 node_modules 再重新 yarn 一下就正常了

2 个赞

我删除lib重新build还是不行,你是说yarn整个koishi吗

1 个赞

嗯嗯,试试手动删除一下根目录下的 node_modules 文件夹,再重新 yarn

1 个赞

但是我在里面放了一些文件,重yarn恢复有点麻烦,我再等等看其他解决方案叭

1 个赞

node_modules 不应该是下载的依赖库嘛,删除重下应该没用什么影响吧

1 个赞

以前不懂,把很多文件放里面了,现在太多不想改 ()

1 个赞

node_modules 是包管理器托管的文件夹,将文件置于其中并不能保证文件的安全性,并可能在下一次同步时丢失。推荐备份自己的文件以防止丢失。

2 个赞

我删掉重yarn还是这样,只能等等下个办法了

1 个赞

我觉得首先得确定数据库里存的是不是转义的。如果数据库里的是对的那就是 dataview 显示问题?

1 个赞

我确认过是字符串,不是显示问题

1 个赞

重新插入的值也是字符串嘛,那和我的现象不太一样。
我之前遇到问题是想将数据库从 sqlite 移植到 mysql,也是用 json 来储存用户数据,但是就是 User 表里的一个属性储存进去用 dataview 查看是字符串,而其他表的其他 json 属性都正常。更离奇的是,我用 eval 写了暂时的解决方案,最后构建 docker 镜像部署到公网才发现,之前储存错误的数据又莫名奇妙正常了 :rofl:

1 个赞

重新 yarn 后,有再尝试插入一个值试试嘛

1 个赞

问问用的什么数据库?minato 的单元测试中测过 json 的情况,但似乎是好的。

1 个赞

都试过了,不行

1 个赞

mysql,我的另一个表也存json是好的,这个表却是坏的

1 个赞

那就没法复现了啊……是不是其他插件搞的……

1 个赞

我重新yarn create koishi,把插件复制过去yarn,json正常;
改为使用mysql,又变为string;
尝试新建一个数据库,重新插入数据后仍然是string

1 个赞

mysql 版本是多少?

2 个赞

5.4.5

1 个赞