From 9d5b690cc02836a8c8802cbb889909993759a6dc Mon Sep 17 00:00:00 2001 From: Andrew Richardson Date: Fri, 16 Sep 2022 15:00:32 -0400 Subject: [PATCH] Delete duplicate blockchainevents when migrating Signed-off-by: Andrew Richardson --- .../postgres/000099_fix_blockchainevent_protocolid_index.up.sql | 2 ++ .../sqlite/000099_fix_blockchainevent_protocolid_index.up.sql | 2 ++ 2 files changed, 4 insertions(+) diff --git a/db/migrations/postgres/000099_fix_blockchainevent_protocolid_index.up.sql b/db/migrations/postgres/000099_fix_blockchainevent_protocolid_index.up.sql index 9fbc171185..6acdb7dfc6 100644 --- a/db/migrations/postgres/000099_fix_blockchainevent_protocolid_index.up.sql +++ b/db/migrations/postgres/000099_fix_blockchainevent_protocolid_index.up.sql @@ -1,5 +1,7 @@ BEGIN; DROP INDEX blockchainevents_protocolid; +DELETE FROM blockchainevents WHERE listener_id IS NULL AND seq NOT IN ( + SELECT MIN(seq) FROM blockchainevents WHERE listener_id IS NULL GROUP BY namespace, protocol_id); CREATE UNIQUE INDEX blockchainevents_protocolid ON blockchainevents(namespace, protocol_id) WHERE listener_id IS NULL; CREATE UNIQUE INDEX blockchainevents_listener_protocolid ON blockchainevents(namespace, listener_id, protocol_id) WHERE listener_id IS NOT NULL; COMMIT; diff --git a/db/migrations/sqlite/000099_fix_blockchainevent_protocolid_index.up.sql b/db/migrations/sqlite/000099_fix_blockchainevent_protocolid_index.up.sql index 4dc3f4ccf9..b2bed6f089 100644 --- a/db/migrations/sqlite/000099_fix_blockchainevent_protocolid_index.up.sql +++ b/db/migrations/sqlite/000099_fix_blockchainevent_protocolid_index.up.sql @@ -1,3 +1,5 @@ DROP INDEX blockchainevents_protocolid; +DELETE FROM blockchainevents WHERE listener_id IS NULL AND seq NOT IN ( + SELECT MIN(seq) FROM blockchainevents WHERE listener_id IS NULL GROUP BY namespace, protocol_id); CREATE UNIQUE INDEX blockchainevents_protocolid ON blockchainevents(namespace, protocol_id) WHERE listener_id IS NULL; CREATE UNIQUE INDEX blockchainevents_listener_protocolid ON blockchainevents(namespace, listener_id, protocol_id) WHERE listener_id IS NOT NULL;