You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何安全清理aposDocVersion表仅保留最近两次commit记录

aposDocVersions表冗余记录清理方案

关联关系说明

aposDocVersions表和apostrophe-workflow模块直接关联,模块的submit、commit逻辑的底层数据都存在这张表中,你未使用版本历史功能的情况下,清理旧记录不会影响现有业务逻辑的正常运行。

安全清理步骤

操作前务必先全量备份数据库,建议先在测试环境验证操作效果,再在生产环境执行。

方案1:使用官方原生命令(推荐,安全性最高)

Apostrophe的workflow模块自带版本清理工具,直接执行以下命令即可自动保留每个文档最近2次commit记录,删除其余所有冗余版本:
node app apostrophe-workflow:cleanup --keep=2
命令执行过程中会自动处理关联数据,不会出现手动SQL操作可能引发的外键、数据关联错误。

方案2:手动SQL清理(适合对表结构熟悉的场景)

如果需要自定义清理逻辑,可以通过SQL操作,先查询确认待删除的条目数量是否符合预期:

SELECT COUNT(*) FROM aposDocVersions v1
WHERE (
  SELECT COUNT(*) FROM aposDocVersions v2
  WHERE v2.docId = v1.docId AND v2.createdAt >= v1.createdAt
) > 2;

确认数量无误后执行删除操作:

DELETE v1 FROM aposDocVersions v1
INNER JOIN aposDocVersions v2
  ON v1.docId = v2.docId AND v2.createdAt >= v1.createdAt
GROUP BY v1.id
HAVING COUNT(*) > 2;

后续操作

清理完成后重启Apostrophe服务刷新缓存即可,现有已发布内容、submit/commit流程都不会受影响。


内容的提问来源于stack exchange,提问作者jansensan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 16:06:09