288e01a01a
build / build (push) Failing after 16s
为什么:用户确认维护窗口方案,需要真实占有目标而不是 503 页面。 - 迁移 000070 library_maintenance:scope 唯一持有者、作业/目标身份、服务原状态、阶段。 - worker 在写目标前 acquire,验证+登记成功才 release;回滚失败/未验证保持 needs_restore。 - API GET /library/maintenance + 同步入口在他人持有时 409。 - 已知缺陷如实记录:候选实例该路由 404;kill 取证脚本竞态导致三项断言为 false。
14 lines
846 B
SQL
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
|
|
); |