wjq/PlantAI-rag-new:feature/journal-seed-autoload
main
journal_directory(1056 条期刊目录)此前需手动跑 import_journals.py 入库, 新环境部署时易遗漏。本 PR 实现:服务启动时自动检测空表 + 自动 seed, 消除人工步骤。
journal_directory
import_journals.py
app/services/journal_seed.py
extract_rows_from_xlsx()
ensure_journal_directory_seeded()
scripts/import_journals.py
app/config.py
seed_on_startup=True
REVIEW_SEED_ON_STARTUP
app/main.py
asyncio.to_thread
tests/conftest.py
tests/test_seed.py
docs/pr-reports/2026-10-11-journal-seed-autoload.md
不动:source_v4.xlsx、journal_directory 路由/表 schema、db.py、前端。
source_v4.xlsx
db.py
exit=0
already has 1056 rows, skip
total=779
bash review_service/restart.sh # 非空库 → 日志:already has 1056 rows, skip # 空库冷启动 → 日志:seeded 1056 rows (en=779, zh=277, N.Ns) # 特殊部署:REVIEW_SEED_ON_STARTUP=false → 日志:seed skipped curl 'http://127.0.0.1:8100/api/review/journals/directory?lang=en' # 期望 total=779
No dependencies set.
The note is not visible to the blocked user.
概要
journal_directory(1056 条期刊目录)此前需手动跑import_journals.py入库,新环境部署时易遗漏。本 PR 实现:服务启动时自动检测空表 + 自动 seed,
消除人工步骤。
修改内容
app/services/journal_seed.py(新增)extract_rows_from_xlsx()含口径 779/277 与 id 冲突闸门;ensure_journal_directory_seeded()空表才导,绝不抛异常scripts/import_journals.pyapp/config.pyseed_on_startup=True(REVIEW_SEED_ON_STARTUP可关)app/main.pyasyncio.to_thread导入,不阻塞启动tests/conftest.py(新增)tests/test_seed.py(新增)docs/pr-reports/2026-10-11-journal-seed-autoload.md(新增)不动:
source_v4.xlsx、journal_directory路由/表 schema、db.py、前端。测试结果
exit=0,成功 1056 条(en=779/zh=277),幂等通过already has 1056 rows, skip,total=779部署验证(部署后执行)