Files

34 lines
1013 B
PL/PgSQL
Raw Permalink Normal View History

2026-08-26 06:41:07 +08:00
BEGIN;
ALTER TABLE idempotency_record
ADD COLUMN actor_key varchar(500) NOT NULL DEFAULT 'urn:legacy:unknown';
ALTER TABLE idempotency_record
DROP CONSTRAINT idempotency_record_tenant_id_scope_idempotency_key_key;
ALTER TABLE idempotency_record
ADD CONSTRAINT idempotency_record_actor_scope_key
UNIQUE (actor_key, scope, idempotency_key);
CREATE INDEX idempotency_record_tenant_scope_idx
ON idempotency_record (tenant_id, scope, created_at DESC);
ALTER TABLE outbox_event
ADD COLUMN deduplication_key varchar(255),
ADD COLUMN payload_hash char(64) NOT NULL DEFAULT repeat('0', 64),
ADD COLUMN dead_at timestamptz;
CREATE UNIQUE INDEX outbox_event_deduplication_key
ON outbox_event (
COALESCE(tenant_id, '00000000-0000-0000-0000-000000000000'::uuid),
event_type,
deduplication_key
)
WHERE deduplication_key IS NOT NULL;
CREATE INDEX outbox_event_stale_lock_idx
ON outbox_event (locked_at)
WHERE status = 'processing';
COMMIT;