From 6fc897933d4cfbabcada46488ff50890f1c7a509 Mon Sep 17 00:00:00 2001
From: Bill Erickson <berickxx@gmail.com>
Date: Thu, 23 May 2019 18:02:41 -0400
Subject: [PATCH] LP1830391 Workstation settings unique constraint

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
---
 Open-ILS/src/sql/Pg/005.schema.actors.sql                    | 3 ++-
 Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql
index 0572543768..33ae6282a1 100644
--- a/Open-ILS/src/sql/Pg/005.schema.actors.sql
+++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql
@@ -1108,7 +1108,8 @@ CREATE TABLE actor.workstation_setting (
                        ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
     name        TEXT   NOT NULL REFERENCES config.workstation_setting_type (name) 
                        ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,
-    value       JSON   NOT NULL
+    value       JSON   NOT NULL,
+    CONSTRAINT  ws_once_per_key UNIQUE (workstation, name)
 );
 
 CREATE INDEX actor_workstation_setting_workstation_idx 
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
index 315c85b0d2..e9e8b0e79a 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
@@ -12,6 +12,8 @@ VALUES (
     )
 );
 
+ALTER TABLE actor.workstation_setting
+    ADD CONSTRAINT ws_once_per_key UNIQUE (workstation, name);
 
 COMMIT;
 
-- 
2.11.0