proofdb/scriptdoc/backfill_archive_content.md
2026-05-08 00:05:51 +08:00

1.8 KiB
Raw Blame History

Archive Content 回填脚本

脚本路径

scripts/backfill_archive_content.php

脚本作用

回填历史 archives.content 字段。

这个脚本主要用于修复旧数据中 content 为空的问题。它会按下面顺序尝试生成 content

  1. 如果 archive 有 raw,就按当前导入规则把原始 Markdown 规范化成正文文本。
  2. 如果 raw 为空,就按 chunk_index 顺序拼接现有 chunk 的 text 作为回退正文。

脚本不会伪造 raw。如果历史数据里 raw 丢了,脚本只会尽力补 content

运行前提

  • 当前环境中的 PostgreSQL 配置可用。
  • 项目依赖已安装完成。
  • 从项目根目录执行命令。

运行命令

默认只处理 content 为空的 archive

php scripts/backfill_archive_content.php

只处理一个 archive

php scripts/backfill_archive_content.php --archive_uid=01KQHVREB6XPYF604RVZAP9NNY

强制重算,即使 content 已经有值:

php scripts/backfill_archive_content.php --force

只预览,不写数据库:

php scripts/backfill_archive_content.php --dry-run

成功输出示例

[updated] 01KQHVREB6XPYF604RVZAP9NNY source=chunks content_length=6375
Archive content backfill completed.
Archive filter: auto
Force mode: no
Dry run: no
Scanned: 1
Updated: 1
From raw: 0
From chunks: 1
Skipped: 0

适用场景

  • 修复旧版本导入留下的 archives.content 为空问题。
  • 导入逻辑更新后,希望重算归一化正文。
  • 为后续 AI / RAG / archive 级读取补齐正文字段。

重要限制

  • 如果历史数据既没有 raw,也没有 chunks脚本会跳过该 archive。
  • 用 chunks 回填时,得到的是拼接后的正文文本,不会恢复原始 Markdown 结构。