为 PostgreSQL 主库接入元数据导入与投稿证据写入 #15

Merged
Zayden-Jung merged 1 commits from codex/postgres-ingestion into main 2026-11-07 07:53:18 +00:00
Collaborator

生产主库已经切换到 PostgreSQL,旧会议导入、arXiv 导入和投稿身份回填仍只能写 SQLite。新增原生 PostgreSQL 写入端,复用现有论文身份匹配、跨来源合并、投稿/决定证据及标签规则,供后续批次继续入库。

  • postgres/writer.py:发布 schema/编码检查、会话级单写入锁、原生事务、参数编码/结果还原和 identity 分配;读者可继续查询。
  • db/backend.py、store.py、submissions.py:共用数据库选择和 RETURNING helper,将领域 SQL 改为两种后端均支持的 ON CONFLICT,保留历史 ID、跨会议决定和平台/自定义标签证据。
  • ingestion/records.py、arxiv.py、backfill.py:增加 --pg-service/--pg-schema;会议文件完整回滚并保留失败日志,arXiv 500行提交/断点恢复,回填不重复导入正文;始终关闭异常连接。
  • tests/test_postgres_ingestion.py:真实 PostgreSQL 覆盖原文 NUL、历史ID、跨会拒稿后录用、重复导入、标签隔离、文件失败回滚、锁跨提交/回滚、只读查询并行、拒绝未发布 schema、投稿/决定来源合并及501行 arXiv 中断恢复。
  • README.md、docs/usage.md、docs/operations.md:说明三种正式写入入口、事务、共享表写入协议、序列空洞、存储空间监测及尚未适配的维护命令。
  • .gitea/workflows/check.yml:远程构建安装后,在源码目录之外检查三个入口及新写入模块。

验证:已批准 ces-control:host 上完整200项回归通过,真实 PostgreSQL 用例实际执行;git diff --check通过。新增断点用例只固定临时文件系统空间条件,数据库提交/恢复仍用真实 PostgreSQL。未在本机测试或构建。本提交 CI966/job1063已成功:完整200项测试通过,16项真实 PostgreSQL 集成用例实际运行,wheel构建、安装、源码目录外的三个写入入口和模块检查通过,runner为aliyun-ces-control。

限制:生产数据尚未使用此版本开始新导入。导入前还需对待处理清单在 PostgreSQL 主库重新核验冲突、哈希和数量;SQLite 冻结备份不代表当前主库。最终全库去重及会议/公开拒稿覆盖审计仍未完成,完整goal保持active。

base main(426aa04);head codex/postgres-ingestion(6ea1506)。等待用户手动合并。

生产主库已经切换到 PostgreSQL,旧会议导入、arXiv 导入和投稿身份回填仍只能写 SQLite。新增原生 PostgreSQL 写入端,复用现有论文身份匹配、跨来源合并、投稿/决定证据及标签规则,供后续批次继续入库。 - postgres/writer.py:发布 schema/编码检查、会话级单写入锁、原生事务、参数编码/结果还原和 identity 分配;读者可继续查询。 - db/backend.py、store.py、submissions.py:共用数据库选择和 RETURNING helper,将领域 SQL 改为两种后端均支持的 ON CONFLICT,保留历史 ID、跨会议决定和平台/自定义标签证据。 - ingestion/records.py、arxiv.py、backfill.py:增加 --pg-service/--pg-schema;会议文件完整回滚并保留失败日志,arXiv 500行提交/断点恢复,回填不重复导入正文;始终关闭异常连接。 - tests/test_postgres_ingestion.py:真实 PostgreSQL 覆盖原文 NUL、历史ID、跨会拒稿后录用、重复导入、标签隔离、文件失败回滚、锁跨提交/回滚、只读查询并行、拒绝未发布 schema、投稿/决定来源合并及501行 arXiv 中断恢复。 - README.md、docs/usage.md、docs/operations.md:说明三种正式写入入口、事务、共享表写入协议、序列空洞、存储空间监测及尚未适配的维护命令。 - .gitea/workflows/check.yml:远程构建安装后,在源码目录之外检查三个入口及新写入模块。 验证:已批准 ces-control:host 上完整200项回归通过,真实 PostgreSQL 用例实际执行;git diff --check通过。新增断点用例只固定临时文件系统空间条件,数据库提交/恢复仍用真实 PostgreSQL。未在本机测试或构建。本提交 CI966/job1063已成功:完整200项测试通过,16项真实 PostgreSQL 集成用例实际运行,wheel构建、安装、源码目录外的三个写入入口和模块检查通过,runner为aliyun-ces-control。 限制:生产数据尚未使用此版本开始新导入。导入前还需对待处理清单在 PostgreSQL 主库重新核验冲突、哈希和数量;SQLite 冻结备份不代表当前主库。最终全库去重及会议/公开拒稿覆盖审计仍未完成,完整goal保持active。 base main(426aa04);head codex/postgres-ingestion(6ea1506)。等待用户手动合并。
codex-bot added 1 commit 2026-11-07 07:40:13 +00:00
Support native PostgreSQL metadata ingestion and provenance writes
Metadata integrity checks / metadata (push) Successful in 1m7s
6ea150690d
Zayden-Jung merged commit dc41dfa350 into main 2026-11-07 07:53:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/paper-atlas#15