From 60ec86d28c32ac71c1092dd7491bdbc09a36e18c Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Tue, 20 Mar 2012 12:28:58 -0400 Subject: [PATCH 1/1] Beginning an unwrapped upgrade script Signed-off-by: Mike Rylander Signed-off-by: Jason Etheridge Signed-off-by: Thomas Berezansky --- .../upgrade/XXXX.schema.custom_toolbars.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.custom_toolbars.sql diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.custom_toolbars.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.custom_toolbars.sql new file mode 100644 index 0000000000..ae94191446 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.custom_toolbars.sql @@ -0,0 +1,19 @@ + +CREATE TABLE actor.toolbar ( + id BIGSERIAL PRIMARY KEY, + ws INT REFERENCES actor.workstation (id) ON DELETE CASCADE, + org INT REFERENCES actor.org_unit (id) ON DELETE CASCADE, + usr INT REFERENCES actor.usr (id) ON DELETE CASCADE, + label TEXT NOT NULL, + layout TEXT NOT NULL, + CONSTRAINT label_once_per_ws UNIQUE (ws, label) WHERE ws IS NOT NULL, + CONSTRAINT label_once_per_org UNIQUE (org, label) WHERE org IS NOT NULL, + CONSTRAINT label_once_per_usr UNIQUE (usr, label) WHERE usr IS NOT NULL, + CONSTRAINT only_one_type CHECK ( + (ws IS NOT NULL AND COALESCE(org,usr) IS NULL) OR + (org IS NOT NULL AND COALESCE(ws,usr) IS NULL) OR + (usr IS NOT NULL AND COALESCE(org,ws) IS NULL) + ), + CONSTRAINT layout_must_be_json CHECK ( is_json(layout) ) +); + -- 2.43.2