1.8 KiB
1.8 KiB
Archive Content 回填脚本
脚本路径
scripts/backfill_archive_content.php
脚本作用
回填历史 archives.content 字段。
这个脚本主要用于修复旧数据中 content 为空的问题。它会按下面顺序尝试生成 content:
- 如果 archive 有
raw,就按当前导入规则把原始 Markdown 规范化成正文文本。 - 如果
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 结构。