2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/data-service.git synced 2023-12-14 03:23:03 +01:00

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

@ -85,6 +85,8 @@ VALUES "
")")))
data
build-ids)
", ")))
", ")
"
ON CONFLICT DO NOTHING"))
(exec-query conn query '()))

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;

View file

@ -0,0 +1,7 @@
-- Revert guix-data-service:build_status_add_unique_index from pg
BEGIN;
-- XXX Add DDLs here.
COMMIT;

View file

@ -63,3 +63,4 @@ translations_for_lint_checker_descriptions 2020-05-22T19:49:37Z daniela <daniela
translations_for_package_synopsis_and_descriptions 2020-06-09T12:42:54Z daniela <daniela@linux-ijv5> # Support translations for package synopsis and descriptions
build_status_nullable_timestamp 2020-06-27T12:34:29Z Christopher Baines <mail@cbaines.net> # Make build_status.timestamp nullable
build_add_build_server_build_id 2020-06-27T12:48:57Z Christopher Baines <mail@cbaines.net> # Add builds.build_server_build_id
build_status_add_unique_index 2020-06-30T17:19:30Z Christopher Baines <mail@cbaines.net> # Add a unique index to the build_status table

View file

@ -0,0 +1,7 @@
-- Verify guix-data-service:build_status_add_unique_index on pg
BEGIN;
-- XXX Add verifications here.
ROLLBACK;