diff options
author | Christopher Baines <mail@cbaines.net> | 2020-09-27 11:11:02 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-09-27 11:11:02 +0100 |
commit | 5b13ee22518df33c42ed04ee299a7c94b78fbb81 (patch) | |
tree | 9b1faca3739f103bdd47da0a1cd7070854a879f1 | |
parent | 52a23a53335c979211f46ed4426cc7b1469a9892 (diff) | |
download | data-service-5b13ee22518df33c42ed04ee299a7c94b78fbb81.tar data-service-5b13ee22518df33c42ed04ee299a7c94b78fbb81.tar.gz |
Delete builds for unreferenced derivations
-rw-r--r-- | guix-data-service/data-deletion.scm | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/guix-data-service/data-deletion.scm b/guix-data-service/data-deletion.scm index dbb94e5..4bca68d 100644 --- a/guix-data-service/data-deletion.scm +++ b/guix-data-service/data-deletion.scm @@ -268,6 +268,36 @@ FROM ( WHERE commit = ''"))))) (define (delete-unreferenced-derivations) + (define (delete-builds-for-derivation-output-details-set + conn + derivation-output-details-set-id) + (let ((build-ids + (map car + (exec-query + conn + " +SELECT id +FROM builds +WHERE derivation_output_details_set_id = $1" + derivation-output-details-set-id)))) + + (unless (null? build-ids) + (exec-query + conn + (string-append + " +DELETE FROM build_status WHERE build_id IN (" + (string-join build-ids ",") + ")")) + + (exec-query + conn + (string-append + " +DELETE FROM builds WHERE id IN (" + (string-join build-ids ",") + ")"))))) + (define (maybe-delete-derivation conn id file-name) (match (map car @@ -348,6 +378,10 @@ WHERE derivation_id = $1" (when (<= (string->number count) 1) + (delete-builds-for-derivation-output-details-set + conn + derivation-output-details-set-id) + (exec-query conn " |