Files
knowledge-governance/internal/platform/postgres/migrations/000070_library_maintenance.up.sql
T
姚章浩 288e01a01a
build / build (push) Failing after 16s
feat(library): 目标维护窗口(持久所有权/独占/release-on-verify)+ known-broken 记录
为什么:用户确认维护窗口方案,需要真实占有目标而不是 503 页面。

- 迁移 000070 library_maintenance:scope 唯一持有者、作业/目标身份、服务原状态、阶段。
- worker 在写目标前 acquire,验证+登记成功才 release;回滚失败/未验证保持 needs_restore。
- API GET /library/maintenance + 同步入口在他人持有时 409。
- 已知缺陷如实记录:候选实例该路由 404;kill 取证脚本竞态导致三项断言为 false。
2026-10-28 20:45:02 +08:00

14 lines
846 B
SQL

-- 目标维护窗口:同步/恢复期间独占目标,只有完整验证通过才开放。
-- 一个 scope 同时只能有一个维护持有者;持有者进程死掉后由下一个接管的 worker 继承,
-- 不会被"finally"无条件释放。
CREATE TABLE library_maintenance (
scope VARCHAR(16) PRIMARY KEY CHECK (scope IN ('internal','external')),
owner_job_id VARCHAR(128) NOT NULL,
target_identity TEXT NOT NULL,
state VARCHAR(24) NOT NULL CHECK (state IN ('acquired','applying','verified','released','needs_restore')),
original_service_state TEXT NOT NULL DEFAULT '',
note TEXT NOT NULL DEFAULT '',
acquired_at TIMESTAMPTZ NOT NULL,
updated_at TIMESTAMPTZ NOT NULL,
released_at TIMESTAMPTZ
);