Avoid duplicate build status entries

This effectively makes adding build status entries idempotent to some degree.
This commit is contained in:
Christopher Baines 2020-06-30 18:30:01 +01:00
parent 9192550331
commit 5ee8207565
5 changed files with 36 additions and 1 deletions

View file

@ -0,0 +1,18 @@
-- Deploy guix-data-service:build_status_add_unique_index to pg
BEGIN;
DELETE FROM build_status
WHERE id NOT IN (
SELECT MIN(id) FROM build_status GROUP BY build_id, timestamp, status
);
ALTER TABLE build_status
ADD CONSTRAINT build_status_build_id_timestamp_status_unique
UNIQUE (build_id, timestamp, status);
CREATE UNIQUE INDEX build_status_build_id_status_unique_idx
ON build_status (build_id, status)
WHERE timestamp IS NULL;
COMMIT;