fix(scripts): cascade entity_status/signals/metrics in orphan cleanup
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled
ci / web (push) Has been cancelled
Desktop App / Build Linux (amd64) (push) Has been cancelled
Desktop App / Attach to Release (push) Has been cancelled

This commit is contained in:
2026-07-29 19:39:52 +02:00
parent 6007e922b4
commit 62c9fc5c86

View File

@@ -49,10 +49,17 @@ fi
echo echo
echo "== applying (config_mutation) ==" echo "== applying (config_mutation) =="
# Delete check_defs first (FK), then the orphan check entities. # check_defs first, then the dependent rows an entity owns (status, signals,
# metrics), then the orphan check entities. FKs prevent a plain entity delete.
$PSQL_CMD -v ON_ERROR_STOP=1 <<SQL $PSQL_CMD -v ON_ERROR_STOP=1 <<SQL
BEGIN; BEGIN;
DELETE FROM check_defs WHERE entity_id IN (SELECT id FROM entities e WHERE $ORPHAN_PRED); DELETE FROM check_defs WHERE entity_id IN (SELECT id FROM entities e WHERE $ORPHAN_PRED);
WITH ids AS (SELECT id FROM entities e WHERE $ORPHAN_PRED)
DELETE FROM metric_samples WHERE entity_id IN (SELECT id FROM ids);
WITH ids AS (SELECT id FROM entities e WHERE $ORPHAN_PRED)
DELETE FROM signals WHERE entity_id IN (SELECT id FROM ids) OR target_entity_id IN (SELECT id FROM ids);
WITH ids AS (SELECT id FROM entities e WHERE $ORPHAN_PRED)
DELETE FROM entity_status WHERE entity_id IN (SELECT id FROM ids);
DELETE FROM entities e WHERE $ORPHAN_PRED; DELETE FROM entities e WHERE $ORPHAN_PRED;
COMMIT; COMMIT;
SQL SQL