From fb3c1db9505d1374ba2d8662676275b3713083a3 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 23 Nov 2011 10:54:51 -0500 Subject: [PATCH] Add constraint to ACQ PO state value Limit 'state' values to 'new','pending','on-order','received','cancelled' https://bugs.launchpad.net/evergreen/+bug/893193 Signed-off-by: Bill Erickson --- Open-ILS/src/sql/Pg/200.schema.acq.sql | 3 ++- .../sql/Pg/upgrade/XXXX.schema.acq-po-state-constraint.sql | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-po-state-constraint.sql diff --git a/Open-ILS/src/sql/Pg/200.schema.acq.sql b/Open-ILS/src/sql/Pg/200.schema.acq.sql index 8765c4a659..3b82f9d573 100644 --- a/Open-ILS/src/sql/Pg/200.schema.acq.sql +++ b/Open-ILS/src/sql/Pg/200.schema.acq.sql @@ -379,7 +379,8 @@ CREATE TABLE acq.purchase_order ( name TEXT NOT NULL, cancel_reason INT REFERENCES acq.cancel_reason( id ) DEFERRABLE INITIALLY DEFERRED, - prepayment_required BOOLEAN NOT NULL DEFAULT FALSE + prepayment_required BOOLEAN NOT NULL DEFAULT FALSE, + CONSTRAINT valid_po_state CHECK (state IN ('new','pending','on-order','received','cancelled')) ); CREATE INDEX po_owner_idx ON acq.purchase_order (owner); CREATE INDEX po_provider_idx ON acq.purchase_order (provider); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-po-state-constraint.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-po-state-constraint.sql new file mode 100644 index 0000000000..cb8db6d21a --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-po-state-constraint.sql @@ -0,0 +1,12 @@ +-- Evergreen DB patch XXXX.schema.acq-po-state-constraint.sql +-- +BEGIN; + + +-- check whether patch can be applied +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +ALTER TABLE acq.purchase_order ADD CONSTRAINT valid_po_state + CHECK (state IN ('new','pending','on-order','received','cancelled')); + +COMMIT; -- 2.11.0