前言:若对 MaxKB 知识库中的通用型文档进行导出并迁移到其他机器部署的 MaxKB 中时会发生原有图片丢失的状况。
具体表现内容:导出时只拥有图片存储在 paragraph 表中的相对路径,而并没有将对应的 image 表中的原始图片数据给导出。
故而将导出的Excel、CSV文件导入到其他机器中所部署的MaxKB时数据库中没有该图片的信息,以至于出现图片丢失的情况。
解决方案:
1.首先在原机器(导出知识库的机器)上对图片数据进行备份:
备份语句:先进入pgsql容器 docker exec -it pgsql bash
在容器中运行 pg_dump -U root -d maxkb -t image -f test.sql(-U 数据库用户名 -d 需要备份的数据库 -t 需要备份的表名 -f 输出的文件路径[文件名] .sql)
2.完成备份后需要对导出的sql文件进行修改:
对应的 CREATE TABLE public.image 修改为 CREATE TABLE IF NOT EXISTS public.image
解决下图错误
删除ALTER TABLE ONLY public.image
ADD CONSTRAINT image_pkey PRIMARY KEY (id); 主要为了删除主键的创建(设置)。
解决下图错误
下图所报错误为数据已经存在,要想解决该问题需要在数据库中删除对应数据。
3.最后在需要需要恢复的机器(导入知识库所在的机器)上的pgsql容器中执行:psql -U root -d maxkb -f test.sql(-U 数据库用户名 -d 指定恢复的数据库 -f 恢复文件(即上时速备份文件中的.sql文件))。
完成后再次查看MaxKB知识库即可完成因导入导出而导致图片丢失的问题。