21 lines
752 B
PL/PgSQL
21 lines
752 B
PL/PgSQL
BEGIN;
|
|||
|
|
|
||
|
|
DROP TABLE IF EXISTS runtime_config_rollout;
|
||
|
|
DROP TABLE IF EXISTS ops_device_group_member;
|
||
|
|
DROP TABLE IF EXISTS ops_device_group;
|
||
|
|
DROP TABLE IF EXISTS ops_config_evaluation;
|
||
|
|
DROP TABLE IF EXISTS ops_resource_reference;
|
||
|
|
|
||
|
|
WITH ranked AS (
|
||
|
|
SELECT id,row_number() OVER (PARTITION BY tenant_id,config_key ORDER BY version_no DESC,id DESC) AS position
|
||
|
|
FROM runtime_config_version WHERE status='PUBLISHED'
|
||
|
|
)
|
||
|
|
UPDATE runtime_config_version rcv
|
||
|
|
SET status='RETIRED',retired_at=COALESCE(retired_at,now()),row_version=row_version+1,updated_at=now()
|
||
|
|
FROM ranked WHERE ranked.id=rcv.id AND ranked.position>1;
|
||
|
|
|
||
|
|
CREATE UNIQUE INDEX runtime_config_one_published_key
|
||
|
|
ON runtime_config_version(tenant_id,config_key) WHERE status='PUBLISHED';
|
||
|
|
|
||
|
|
COMMIT;
|