Skip to content

Commit

Permalink
Merge pull request #392 from oleksiiRybak/postgres-to-auroradb-migration
Browse files Browse the repository at this point in the history
postgresql to aurora db migration fix
  • Loading branch information
joe-crawford committed Feb 9, 2023
2 parents f96d322 + 0dc6890 commit 30a19bd
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,26 +1,42 @@
-- before mdm-core version 5.2.0, child BreadcrumbTrees were not deleted when parent models were deleted
-- clean up orphaned BreadcrumbTrees

CREATE TEMPORARY TABLE valid_breadcrumb_trees_temp AS
CREATE TEMPORARY TABLE IF NOT EXISTS valid_breadcrumb_trees_temp AS
WITH RECURSIVE valid_breadcrumb_trees AS MATERIALIZED (
SELECT *
FROM core.breadcrumb_tree
WHERE top_breadcrumb_tree = TRUE
UNION ALL
SELECT c.*
FROM core.breadcrumb_tree c
INNER JOIN valid_breadcrumb_trees v
INNER JOIN valid_breadcrumb_trees v
ON c.parent_id = v.id
)
SELECT *
FROM valid_breadcrumb_trees;

ALTER TABLE core.breadcrumb_tree DISABLE TRIGGER ALL;
DELETE FROM core.breadcrumb_tree;
ALTER TABLE core.breadcrumb_tree ENABLE TRIGGER ALL;
SELECT * FROM valid_breadcrumb_trees;

DO
$$
BEGIN
IF EXISTS (SELECT aurora_version()) THEN
SET session_replication_role = replica;
DELETE FROM core.breadcrumb_tree;
SET session_replication_role = DEFAULT;
ELSE
ALTER TABLE core.breadcrumb_tree DISABLE TRIGGER ALL;
DELETE FROM core.breadcrumb_tree;
ALTER TABLE core.breadcrumb_tree ENABLE TRIGGER ALL;
END IF;

exception
when undefined_function then
ALTER TABLE core.breadcrumb_tree DISABLE TRIGGER ALL;
DELETE FROM core.breadcrumb_tree;
ALTER TABLE core.breadcrumb_tree ENABLE TRIGGER ALL;
END
$$;

INSERT INTO core.breadcrumb_tree
SELECT *
FROM valid_breadcrumb_trees_temp;
SELECT * FROM valid_breadcrumb_trees_temp;

CREATE INDEX breadcrumb_tree_tree_string_idx ON core.breadcrumb_tree (tree_string text_pattern_ops);
CREATE INDEX IF NOT EXISTS breadcrumb_tree_tree_string_idx ON core.breadcrumb_tree (tree_string text_pattern_ops);
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,9 @@ WHERE version = '1.7.0' AND
DELETE
FROM core.flyway_schema_history
WHERE version = '2.10.0' AND
description = 'update database metadata values';
description = 'update database metadata values';

UPDATE core.flyway_schema_history
SET checksum = -1978164369
WHERE version = '5.1.3' AND
checksum = -573557977;

0 comments on commit 30a19bd

Please sign in to comment.