Skip to content

Commit 9d60260

Browse files
committed
fix: self-heal invalid indexes on migration retry
Signed-off-by: anilb <epipav@gmail.com>
1 parent edbea78 commit 9d60260

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

backend/src/osspckgs/migrations/V1784745489__sequin_backfill_sort_column_indexes.sql

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
CREATE INDEX IF NOT EXISTS versions_last_synced_at_id_package_id_idx
22
ON ONLY versions (last_synced_at, id, package_id);
33

4+
DO $$
5+
DECLARE idx text;
6+
BEGIN
7+
FOR idx IN
8+
SELECT c.relname FROM pg_index i JOIN pg_class c ON c.oid = i.indexrelid
9+
WHERE NOT i.indisvalid AND c.relname ~ '^versions_p[0-9]+_last_synced_at_id_package_id_idx$'
10+
LOOP
11+
EXECUTE format('DROP INDEX IF EXISTS %I', idx);
12+
END LOOP;
13+
END$$;
14+
415
CREATE INDEX CONCURRENTLY IF NOT EXISTS versions_p0_last_synced_at_id_package_id_idx
516
ON versions_p0 (last_synced_at, id, package_id);
617
CREATE INDEX CONCURRENTLY IF NOT EXISTS versions_p1_last_synced_at_id_package_id_idx
@@ -85,6 +96,17 @@ END$$;
8596
CREATE INDEX IF NOT EXISTS package_dependencies_updated_at_id_depends_on_id_idx
8697
ON ONLY package_dependencies (updated_at, id, depends_on_id);
8798

99+
DO $$
100+
DECLARE idx text;
101+
BEGIN
102+
FOR idx IN
103+
SELECT c.relname FROM pg_index i JOIN pg_class c ON c.oid = i.indexrelid
104+
WHERE NOT i.indisvalid AND c.relname ~ '^package_dependencies_p[0-9]+_updated_at_id_depends_on_id_idx$'
105+
LOOP
106+
EXECUTE format('DROP INDEX IF EXISTS %I', idx);
107+
END LOOP;
108+
END$$;
109+
88110
CREATE INDEX CONCURRENTLY IF NOT EXISTS package_dependencies_p0_updated_at_id_depends_on_id_idx
89111
ON package_dependencies_p0 (updated_at, id, depends_on_id);
90112
CREATE INDEX CONCURRENTLY IF NOT EXISTS package_dependencies_p1_updated_at_id_depends_on_id_idx

0 commit comments

Comments
 (0)