2022-12-13 08:32:57 +01:00
/* remove the redundant data from table artifact_blob */
2023-03-02 10:28:27 +01:00
delete from artifact_blob afb where not exists ( select digest from blob b where b . digest = afb . digest_af ) ;
/* Update the registry and replication policy associated with the chartmuseum */
UPDATE registry
SET description = ' Chartmuseum has been deprecated in Harbor v2.8.0, please delete this registry. '
WHERE type in ( ' artifact-hub ' , ' helm-hub ' ) ;
WITH filter_objects AS (
SELECT id , jsonb_array_elements ( filters : : jsonb ) AS filter
FROM replication_policy
WHERE filters IS NOT NULL AND filters ! = ' '
AND jsonb_typeof ( CAST ( filters AS jsonb ) ) = ' array '
) ,
replication_policy_ids AS (
SELECT rp . id
FROM registry r
INNER JOIN replication_policy rp ON ( rp . dest_registry_id = r . id OR rp . src_registry_id = r . id )
WHERE r . type IN ( ' artifact-hub ' , ' helm-hub ' )
)
UPDATE replication_policy AS rp
SET enabled = false ,
filters = (
SELECT COALESCE ( jsonb_agg ( fo . filter ) : : text , ' ' )
FROM filter_objects AS fo
WHERE fo . id = rp . id AND NOT ( filter - > > ' type ' = ' resource ' AND filter - > > ' value ' = ' chart ' )
) ,
description = ' Chartmuseum is deprecated in Harbor v2.8.0, because the Source resource filter of this rule is chart(chartmuseum), so please update this rule. '
WHERE id IN (
SELECT id FROM filter_objects WHERE ( filter - > > ' type ' = ' resource ' AND filter - > > ' value ' = ' chart ' )
UNION
SELECT id FROM replication_policy_ids
) ;