mirror of
https://github.com/block/buzz.git
synced 2026-10-27 12:40:30 +00:00
18 lines
797 B
SQL
18 lines
797 B
SQL
CREATE TABLE community_deletion_checkpoints (
|
|
request_id UUID NOT NULL REFERENCES community_deletion_requests(id) ON DELETE RESTRICT,
|
|
sequence BIGINT GENERATED ALWAYS AS IDENTITY,
|
|
stage TEXT NOT NULL,
|
|
unit_key TEXT NOT NULL,
|
|
status TEXT NOT NULL CHECK (status IN ('started', 'completed', 'failed')),
|
|
lease_generation BIGINT NOT NULL CHECK (lease_generation > 0),
|
|
attempts INTEGER NOT NULL DEFAULT 1 CHECK (attempts > 0),
|
|
detail JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
error TEXT,
|
|
started_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
completed_at TIMESTAMPTZ,
|
|
PRIMARY KEY (request_id, sequence),
|
|
UNIQUE (request_id, stage, unit_key),
|
|
CHECK ((status = 'completed') = (completed_at IS NOT NULL)),
|
|
CHECK ((status = 'failed') = (error IS NOT NULL))
|
|
);
|