From 9390b25f1904ff01093409ff8f29f49b6a2f1289 Mon Sep 17 00:00:00 2001 From: Bill Erickson <berick@esilibrary.com> 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 <berick@esilibrary.com> Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> --- Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +- Open-ILS/src/sql/Pg/200.schema.acq.sql | 3 ++- .../sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index bfcc2192c6..258aa50673 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -87,7 +87,7 @@ CREATE TRIGGER no_overlapping_deps BEFORE INSERT OR UPDATE ON config.db_patch_dependencies FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates'); -INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0721', :eg_version); -- berick/miker +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0722', :eg_version); -- berick/mrpeters/senator CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/200.schema.acq.sql b/Open-ILS/src/sql/Pg/200.schema.acq.sql index 10e29ef9e0..f4669b90f6 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/0722.schema.acq-po-state-constraint.sql b/Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql new file mode 100644 index 0000000000..589610e95b --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0722.schema.acq-po-state-constraint.sql @@ -0,0 +1,12 @@ +-- Evergreen DB patch 0722.schema.acq-po-state-constraint.sql +-- +BEGIN; + + +-- check whether patch can be applied +SELECT evergreen.upgrade_deps_block_check('0722', :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