diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 2948c6ebf..3ecf94e31 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -125,5 +125,7 @@ databaseChangeLog: file: db/changelog/tenant/sql/46-add-keep_image_metadata.sql - include: file: db/changelog/tenant/sql/47-add-keep_hidden_text.sql + - include: + file: db/changelog/tenant/sql/203-acl-duplicate-cleanup.sql - include: file: db/changelog/tenant/sql/203-spring-acl-constraints.changelog.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/203-acl-duplicate-cleanup.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/203-acl-duplicate-cleanup.sql new file mode 100644 index 000000000..f8926a617 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/203-acl-duplicate-cleanup.sql @@ -0,0 +1,26 @@ +update acl_entry e set acl_object_identity = ( + select min(id) + from acl_object_identity oi2 + where oi2.object_id_identity = ( + select object_id_identity from acl_object_identity oi1 where oi1.id = e.acl_object_identity + ) +); + +update acl_entry e set sid = ( + select min(id) + from acl_sid sid2 + where sid2.sid = ( + select sid from acl_sid sid1 where sid1.id = e.sid + ) +); + +update acl_object_identity e set owner_sid = ( + select min(id) + from acl_sid sid2 + where sid2.sid = ( + select sid from acl_sid sid1 where sid1.id = e.owner_sid + ) +); + +delete from acl_sid s1 where s1.id != ( select min(s2.id) from acl_sid s2 where s2.sid = s1.sid); +delete from acl_object_identity s1 where s1.id != ( select min(s2.id) from acl_object_identity s2 where s2.object_id_identity = s1.object_id_identity);