From 84197686ce227b21dae48745f2919a51e070c3c5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 4 Aug 2019 09:39:40 +0100 Subject: Fix some duplicated values in tables The licenses table, along with the package_metadata table had duplicate values. This could happen as the unique constraints on those tables didn't properly account for the nullable fields. The duplicates in those tables also affected the license_sets, packages, package_derivations tables in a similar way. Finally, the guix_revision_package_derivations table was also affected. This commit adds a migration to fix the data, as well as the constraints. THe code to populate the licenses and package_metadata tables is also updated. --- tests/model-license-set.scm | 6 +++--- tests/model-license.scm | 7 +++++-- tests/model-package-metadata.scm | 18 +++++++++++++++--- 3 files changed, 23 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/model-license-set.scm b/tests/model-license-set.scm index 9cd949d..c39171f 100644 --- a/tests/model-license-set.scm +++ b/tests/model-license-set.scm @@ -19,10 +19,10 @@ "https://example.com/why-license-1")) (("License 1" "https://gnu.org/licenses/test-1.html" - "https://example.com/why-license-1") + #f) ("License 2" - "https://gnu.org/licenses/test-2.html" - "https://example.com/why-license-2"))))) + #f + #f))))) (with-postgresql-connection "test-model-license-set" diff --git a/tests/model-license.scm b/tests/model-license.scm index 7888117..8f4b0c3 100644 --- a/tests/model-license.scm +++ b/tests/model-license.scm @@ -17,10 +17,13 @@ "https://example.com/why-license-1")) (("License 1" "https://gnu.org/licenses/test-1.html" - "https://example.com/why-license-1") + #f) ("License 2" "https://gnu.org/licenses/test-2.html" - "https://example.com/why-license-2"))))) + #f) + ("License 3" + #f + #f))))) (with-postgresql-connection "test-model-license" diff --git a/tests/model-package-metadata.scm b/tests/model-package-metadata.scm index ea0cdbe..015a0b2 100644 --- a/tests/model-package-metadata.scm +++ b/tests/model-package-metadata.scm @@ -18,6 +18,15 @@ (home-page "https://example.com") (location (location "file.scm" 5 0)))) +(define mock-inferior-package-foo-2 + (mock-inferior-package + (name "foo") + (version "2") + (synopsis "Foo") + (description "Foo description") + (home-page #f) + (location #f))) + (define (test-license-set-ids conn) (mock ((guix-data-service model license) @@ -46,7 +55,8 @@ (match (inferior-packages->package-metadata-ids conn - (list mock-inferior-package-foo) + (list mock-inferior-package-foo + mock-inferior-package-foo-2) (test-license-set-ids conn)) ((x) (string? x)))) #:always-rollback? #t)) @@ -57,11 +67,13 @@ (test-equal "inferior-packages->package-metadata-ids" (inferior-packages->package-metadata-ids conn - (list mock-inferior-package-foo) + (list mock-inferior-package-foo + mock-inferior-package-foo-2) (test-license-set-ids conn)) (inferior-packages->package-metadata-ids conn - (list mock-inferior-package-foo) + (list mock-inferior-package-foo + mock-inferior-package-foo-2) (test-license-set-ids conn))) #:always-rollback? #t)))))) -- cgit v1.2.3