diff --git a/CHANGELOG.md b/CHANGELOG.md index 257a67d..529e961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Fix query for organizations report [OP-3636] - Bump report-generation-service to most recent version - Write migration to harmonize date formats of change events [OP-3559] +- datafix: cleanup of duplicate memberships [OP-3634] ### Deploy notes ``` drc pull deltanotifier; drc up -d deltanotifier diff --git a/config/migrations/2025/20250725120522-remove-duplicate-memberships-ocmw-municipality.sparql b/config/migrations/2025/20250725120522-remove-duplicate-memberships-ocmw-municipality.sparql new file mode 100644 index 0000000..a55bf85 --- /dev/null +++ b/config/migrations/2025/20250725120522-remove-duplicate-memberships-ocmw-municipality.sparql @@ -0,0 +1,33 @@ +PREFIX org: +PREFIX mu: + +DELETE { + GRAPH { + ?duplicateMembership ?p ?o . + } +} WHERE { + GRAPH { + ?duplicateMembership a org:Membership ; + org:organization ?orgB ; # OCMW + org:member ?orgA ; # Municipality + org:role ; + ?p ?o . + + # Find the other memberships with swapped organizations + ?correctMembership a org:Membership ; + org:organization ?orgA ; # Municipality + org:member ?orgB ; # OCMW + org:role . + } + + GRAPH ?gA { + ?orgA org:classification ?classA . + } + + GRAPH ?gB { + ?orgB org:classification ?classB . + } + + FILTER(?classA = ) + FILTER(?classB = ) +}