Avoid duplicate build status entries
This effectively makes adding build status entries idempotent to some degree.
This commit is contained in:
parent
9192550331
commit
5ee8207565
5 changed files with 36 additions and 1 deletions
|
|
@ -85,6 +85,8 @@ VALUES "
|
||||||
")")))
|
")")))
|
||||||
data
|
data
|
||||||
build-ids)
|
build-ids)
|
||||||
", ")))
|
", ")
|
||||||
|
"
|
||||||
|
ON CONFLICT DO NOTHING"))
|
||||||
|
|
||||||
(exec-query conn query '()))
|
(exec-query conn query '()))
|
||||||
|
|
|
||||||
18
sqitch/deploy/build_status_add_unique_index.sql
Normal file
18
sqitch/deploy/build_status_add_unique_index.sql
Normal 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;
|
||||||
7
sqitch/revert/build_status_add_unique_index.sql
Normal file
7
sqitch/revert/build_status_add_unique_index.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Revert guix-data-service:build_status_add_unique_index from pg
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
-- XXX Add DDLs here.
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
@ -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
|
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_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_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
|
||||||
|
|
|
||||||
7
sqitch/verify/build_status_add_unique_index.sql
Normal file
7
sqitch/verify/build_status_add_unique_index.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Verify guix-data-service:build_status_add_unique_index on pg
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
-- XXX Add verifications here.
|
||||||
|
|
||||||
|
ROLLBACK;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue