记录一次博客评论迁移过程

记录一次博客评论迁移过程
mcxiaochenn小尘AI正在绞尽脑汁想思路ING···
小尘のAI摘要
Deepseek-Chat
问题背景
我使用 abbrlink 插件默认参数设置发现有概率为文章生成纯数字链接,例如abbrlink: 114514
,然后链接转二维码的 api 就这样活生生炸了,我很纳闷,一般来说 url 不应该出现此问题,但事实就是如此,既来之则安知,修!
abbrlink 是 Hexo 的一个插件,用来给文章生成唯一 ID(短链),这样文章的链接就不会随标题变化而改变。
于是按照 ai 说的把 abbrlink 插件配置修改了下:
1 | - permalink: posts/:abbrlink/ |
这样如此链接就不可能是纯数字,ai 还说老文章不受影响,我就放心改完上传了。让我没想到的是它会把老文章一起改了,进而引发了这场惨案。
问题暴露
我一开始并没有发现,高高兴兴把昼夜切换按钮的 bug 修了,后面测试移动端排版的时候瞥了一眼评论区。我擦!我评论咋全没了。马上开始排查,发现最终罪魁就是 abbrlink 的配置改动导致旧链接结构不一致,评论指向的旧 /posts/7e9 变成了 /posts/p7e9,页面上匹配不到原来的评论条目。
解决思路
于是我用Navicat 连上了 MongoDB,手动修改。
在开始任何批量替换前,务必备份数据库!!!不要学我!
1 | # 备份整个数据库 |
之后觉得效率太低了,去学习了下 SQL 查询的语法(技能 + 1)
写了个简易替换脚本:
1 | var oldSlug = "7e9"; // 替换前 |
替换效率更高一点,同一篇文档下所有评论都可以一键替换,还好我文章发的不多,除去学习发现时间,替换就花了 5 分钟的样子,完美解决。
经验总结
- 先备份,再动手(重要且不重复)。
- 在生产库上做批量修改前,先在测试或少量样本上验证。
- 修改链接 / 路由时要意识到可能影响历史数据(评论、外链、SEO 等),最好在改动前做影响评估与回滚计划。
数据无价心莫轻,链接改动慢思量,评论全失才明白,操作谨慎方安康。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果