57 lines
3.8 KiB
Markdown
57 lines
3.8 KiB
Markdown
---
|
||
name: 备份作品抽取结果
|
||
description: 对单本作品的 upgrade_book 派生状态做七域一致性备份、离线复验、回滚演练与精确恢复。需要在重置或高危维护前留下可复验快照、或需要把作品抽取状态恢复到某个备份点时使用;不负责重置、定向修复和正常按窗抽取。
|
||
disable-model-invocation: true
|
||
---
|
||
|
||
# 备份作品抽取状态
|
||
|
||
何时用:要对某本书的 `upgrade_book` 派生状态做**可离线复验的快照**,或要把它恢复到某个已有快照。重置由 `重置作品抽取结果` 负责,定向修复与存量迁移由 `修复作品抽取结果` 负责,正常 `windows/run/status` 由 `抽取作品知识` 负责。
|
||
|
||
## 依赖边界
|
||
|
||
同书互斥复用 `抽取作品知识/scripts/upgrade_work_lock.py` 的 PostgreSQL session advisory lock,不复制第二套互斥规则。`upgrade_book`、`parse_upgrade.py`、`parse-book/SKILL.md` 等字符串是存量数据库与备份清单的兼容键,**不随 Skill 改名**;`capture_code_identity` 里 key 稳定、value 指向拆分后的真实路径。
|
||
|
||
## 输入
|
||
|
||
| 子命令 | 参数 | 用途 |
|
||
|---|---|---|
|
||
| `backup` | `--work-id`、`--expected-chapters`、`--expected-windows` | 一致性导出七域状态到 `/private/tmp` 下的新目录。 |
|
||
| `verify` | `--backup-dir` | 纯离线复验已有备份,不加载数据库连接配置。 |
|
||
| `rehearse` | `--work-id`、`--backup-dir`、`--confirmation-sha` | 在真实表的单事务中应用并强制回滚。 |
|
||
| `restore` | `--backup-dir`、`--backup-id`、`--confirmation-sha`、`--execute` | 精确匹配后逐域读回再提交。 |
|
||
|
||
```bash
|
||
.venv/bin/python muse/content/entity/skills/ingest/备份作品抽取结果/scripts/backup_upgrade_work.py backup \
|
||
--work-id 8 --expected-chapters 594 --expected-windows 116
|
||
.venv/bin/python muse/content/entity/skills/ingest/备份作品抽取结果/scripts/backup_upgrade_work.py verify \
|
||
--backup-dir /private/tmp/muse-upgrade-work8-before-reset
|
||
.venv/bin/python muse/content/entity/skills/ingest/备份作品抽取结果/scripts/backup_upgrade_work.py rehearse \
|
||
--work-id 8 --backup-dir /private/tmp/muse-upgrade-work8-before-reset \
|
||
--confirmation-sha <manifest-confirmationSha>
|
||
```
|
||
|
||
## 输出
|
||
|
||
备份目录内七个状态域各一个 JSONL,加 `manifest.json` 与 `manifest.sha256`。清单绑定数据库 identity、Canonical 章节与 block、窗口边界、活动字段合同、计划参数和实际代码 fileSha,并给出下游必须精确匹配的 `backup_id` 与 `confirmationSha`。`verify` 输出逐文件行数、主键摘要、内容摘要与文件摘要的复验结论;`rehearse` 输出应用差异并声明已回滚。
|
||
|
||
## 数据边界
|
||
|
||
- `backup` 只在一个 `REPEATABLE READ READ ONLY` 事务里读库,不写库、不调用模型;连接关闭后从磁盘独立重算全部摘要。
|
||
- `verify` 只读本地文件。
|
||
- `restore --execute` 是唯一写库入口,写入范围限于目标租户、目标作品、`upgrade_book` 边界内的派生状态。
|
||
- 备份目录必须是 `/private/tmp` 下尚不存在的新目录;导出失败时删除本次新建目录并非零退出。
|
||
|
||
## 红线
|
||
|
||
- 恢复前固定执行离线 `verify`;未 `verify` 不得 `restore`。
|
||
- `restore --execute` 必须精确匹配 `backup_id + confirmationSha`,逐域读回后才提交。
|
||
- work、tenant、数据库 identity、Canonical、窗口、字段合同或代码 fileSha 任一漂移,整体拒绝,不做部分恢复。
|
||
- 取锁失败必须在任何业务 SQL、文件验证、嵌入或模型调用之前非零退出。
|
||
- 备份清单里的逻辑键不得为了"看起来整齐"改名,否则存量备份立刻不可离线复验。
|
||
|
||
## 复利合同
|
||
|
||
- `backup` 并离线复验通过后经 `propose_lesson_dedup` 登记 `example_lesson`(绑 work_id / backup_id)。
|
||
- 升格仍走人工评审,不自动把备份参数升为公共运维规则。
|