fix(sqlite): 收口长期状态数据库版本化迁移契约
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s

This commit is contained in:
2026-09-16 21:02:22 +08:00
parent 99355effe4
commit 7f7d757f15
10 changed files with 2487 additions and 421 deletions
+9 -3
View File
@@ -165,18 +165,24 @@ count,任何一页不一致都会丢弃整个候选快照。
- `translation-tasks.sqlite`:当前 release 的可变 worker 状态库,记录
queued / running / failed / completed / skipped、attempt count、provider run
ID、provider、TextUnit 级译文结果、lease、失败分类、可重试标记和
next attemptschema 由 `schema_migrations` 版本表管理。
next attempt当前 schema version 为 V2schema 由 `schema_migrations` 版本表
管理,并通过只读 fingerprint、`BEGIN IMMEDIATE` 和显式 V1 → V2 migration
保证 future/未知 schema fail closed。
- `translation-handoff.json`:当前 release 的版本化 job/unit/provider run 交接
快照;worker 更新后的实时状态仍以 `translation-tasks.sqlite` 为准。
- `translation-memory.sqlite`:跨 release 的项目级 Translation Memory,不位于
`versions/<id>`,也不与 `translation-tasks.sqlite` 共用;记录 raw source/hash、完整
TextUnit context、candidate/trusted、translation 和 release/TextUnit/provider/run
provenance。默认路径为 `<output>/translation-memory.sqlite`,可由
provenance;当前 schema version 为 V1,打开时先进行只读 fingerprint preflight
再在 writer transaction 内补齐 `schema_migrations` 版本记录。默认路径为
`<output>/translation-memory.sqlite`,可由
`BAT_TRANSLATION_MEMORY_PATH``[translation.worker].translation_memory_path` 或 CLI
覆盖。
- `glossary.sqlite`:跨 release 的项目级 Glossary,不位于 `versions/<id>`,也不与
`translation-tasks.sqlite` 或 TM 共用;记录 term、alias、推荐/允许译法、scope、
priority、review 状态、source provenance 和完整 source/review history。默认路径为
priority、review 状态、source provenance 和完整 source/review history;当前
schema version 为 V1,正式 schema evolution 不再通过 `ensure_column` 隐式修复。
默认路径为
`<output>/glossary.sqlite`,可由 `BAT_GLOSSARY_PATH``[translation.worker].glossary_path`
或 CLI 覆盖。