蓝空图床上传失败问题排查
蓝空图床上传失败问题排查
時光环境说明
使用 1Panel 部署
采用 PostgreSQL 数据库
软件版本:V 2.1
案例说明
官方网站: https://www.lsky.pro
使用手册: https://docs.lsky.pro
使用PicGo上传图片失败,由于无法定位错误原因,重新使用程序调用接口上传,也没有提示具体错误原因
了解该工具更多详细内容可参考:批量备份迁移 Markdown 文件中的图片解决方案
查看错误日志
蓝空图床的错误日志保存路径为:data/storage/logs
可以看到我这里提示有个SQL错误,主键重复了
定位问题并分析错误原因
正常情况下是不会有这个错误的,我这里出现这个错误可能是昨晚迁移数据时不小心误操作了数据库,改了主键关联的序列数据。
本错误处理步骤
注意此处我使用的是PostgreSQL,其他数据库出现此类错误执行语句可能有所不同
查找序列名称
要找到与自增 ID 字段关联的序列名称。通常,序列名称的格式是 表名_字段名_seq
。
1 | SELECT pg_get_serial_sequence('表名', '字段名'); |
例如此处我要查询的表为images
,主键字段为id
1 | SELECT pg_get_serial_sequence('images', 'id'); |
查询得到的序列名称如下:
1 | public.images_id_seq |
查询images
表中最大ID为3372
设置序列的下一个值:
使用 ALTER SEQUENCE
语句来设置序列的下一个值。
例如,如果你想将 id
的下一个值设置为 1000
,可以使用以下语句:
1 | ALTER SEQUENCE 序列名称 RESTART WITH 1000; |
此处我需要将public.images_id_seq
序列的下一个值设置为3373
1 | ALTER SEQUENCE public.images_id_seq RESTART WITH 3373; |
重新测试
修改好后重新上传图片成功
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果