From e5264ede0f6f5048a7db497a36dd14011cebb025 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Fri, 28 May 2021 20:53:06 +0200 Subject: [PATCH] Added constraint to avoid orphan nodes --- 01-paths-indexes.sql | 1 + dump_and_restore/path-indexes.sql | 2 ++ 2 files changed, 3 insertions(+) diff --git a/01-paths-indexes.sql b/01-paths-indexes.sql index ad2bfde..9b6c2fc 100644 --- a/01-paths-indexes.sql +++ b/01-paths-indexes.sql @@ -37,6 +37,7 @@ ALTER TABLE node ADD COLUMN relative_path ltree GENERATED ALWAYS AS (path(parent CREATE INDEX file_rel_path_gist_idx ON node USING GIST(relative_path); ALTER TABLE node ADD CONSTRAINT unique_path UNIQUE (parent_path, name); +ALTER TABLE node ADD CONSTRAINT fk_parent_path FOREIGN KEY (parent_path) REFERENCES node(path); -- Create root node INSERT INTO node (parent_path, parent_relative_path, name, type, creator_id, is_public) VALUES (NULL, NULL, '', 'container', '0', true); diff --git a/dump_and_restore/path-indexes.sql b/dump_and_restore/path-indexes.sql index b5f7e90..84270aa 100644 --- a/dump_and_restore/path-indexes.sql +++ b/dump_and_restore/path-indexes.sql @@ -4,3 +4,5 @@ CREATE UNIQUE INDEX file_path_idx ON node USING btree(path); ALTER TABLE node ADD COLUMN relative_path ltree GENERATED ALWAYS AS (path(parent_relative_path, node_id)) STORED; CREATE INDEX file_rel_path_gist_idx ON node USING GIST(relative_path); + +ALTER TABLE node ADD CONSTRAINT fk_parent_path FOREIGN KEY (parent_path) REFERENCES node(path); -- GitLab