From: Mike Rylander Date: Mon, 19 Mar 2012 15:21:49 +0000 (-0400) Subject: Stamping upgrade script for ACQ/Vandelay integration branch X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3fc982940370c3123ca8af637775cd7958532c00;p=evergreen%2Fjoelewis.git Stamping upgrade script for ACQ/Vandelay integration branch Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 6c5851f00e..c2fee1cf55 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -86,7 +86,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 ('0683', :eg_version); -- tsbere/berick +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0684', :eg_version); -- berick/miker CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0684.schema.acq-vandelay-integration.sql b/Open-ILS/src/sql/Pg/upgrade/0684.schema.acq-vandelay-integration.sql new file mode 100644 index 0000000000..b2ca16d932 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0684.schema.acq-vandelay-integration.sql @@ -0,0 +1,96 @@ +-- Evergreen DB patch 0684.schema.acq-vandelay-integration.sql +BEGIN; + +-- check whether patch can be applied +SELECT evergreen.upgrade_deps_block_check('0684', :eg_version); + +-- schema -- + +-- Replace the constraints with more flexible ENUM's +ALTER TABLE vandelay.queue DROP CONSTRAINT queue_queue_type_check; +ALTER TABLE vandelay.bib_queue DROP CONSTRAINT bib_queue_queue_type_check; +ALTER TABLE vandelay.authority_queue DROP CONSTRAINT authority_queue_queue_type_check; + +CREATE TYPE vandelay.bib_queue_queue_type AS ENUM ('bib', 'acq'); +CREATE TYPE vandelay.authority_queue_queue_type AS ENUM ('authority'); + +-- dropped column is also implemented by the child tables +ALTER TABLE vandelay.queue DROP COLUMN queue_type; + +-- to recover after using the undo sql from below +-- alter table vandelay.bib_queue add column queue_type text default 'bib' not null; +-- alter table vandelay.authority_queue add column queue_type text default 'authority' not null; + +-- modify the child tables to use the ENUMs +ALTER TABLE vandelay.bib_queue + ALTER COLUMN queue_type DROP DEFAULT, + ALTER COLUMN queue_type TYPE vandelay.bib_queue_queue_type + USING (queue_type::vandelay.bib_queue_queue_type), + ALTER COLUMN queue_type SET DEFAULT 'bib'; + +ALTER TABLE vandelay.authority_queue + ALTER COLUMN queue_type DROP DEFAULT, + ALTER COLUMN queue_type TYPE vandelay.authority_queue_queue_type + USING (queue_type::vandelay.authority_queue_queue_type), + ALTER COLUMN queue_type SET DEFAULT 'authority'; + +-- give lineitems a pointer to their vandelay queued_record + +ALTER TABLE acq.lineitem ADD COLUMN queued_record BIGINT + REFERENCES vandelay.queued_bib_record (id) + ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; + +ALTER TABLE acq.acq_lineitem_history ADD COLUMN queued_record BIGINT + REFERENCES vandelay.queued_bib_record (id) + ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; + +-- seed data -- + +INSERT INTO permission.perm_list ( id, code, description ) + VALUES ( + 521, + 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', + oils_i18n_gettext( + 521, + 'Allows a user to create new bibs directly from an ACQ MARC file upload', + 'ppl', + 'description' + ) + ); + + +INSERT INTO vandelay.import_error ( code, description ) + VALUES ( + 'import.record.perm_failure', + oils_i18n_gettext( + 'import.record.perm_failure', + 'Perm failure creating a record', 'vie', 'description') + ); + + +COMMIT; + +/* UNDO SQL +-- XXX this does not exactly recover the state. The bib/auth queue_type colum is +-- directly inherited instead of overridden, which will fail with some of the sql above. +ALTER TABLE acq.lineitem DROP COLUMN queued_record; +ALTER TABLE acq.acq_lineitem_history DROP COLUMN queued_record; +ALTER TABLE vandelay.authority_queue DROP COLUMN queue_type; +ALTER TABLE vandelay.bib_queue DROP COLUMN queue_type; + +DROP TYPE vandelay.bib_queue_queue_type; +DROP TYPE vandelay.authority_queue_queue_type; + +ALTER TABLE vandelay.bib_queue DROP CONSTRAINT vand_bib_queue_name_once_per_owner_const; +ALTER TABLE vandelay.authority_queue DROP CONSTRAINT vand_authority_queue_name_once_per_owner_const; + +ALTER TABLE vandelay.queue ADD COLUMN queue_type TEXT NOT NULL DEFAULT 'bib' CHECK (queue_type IN ('bib','authority')); +UPDATE vandelay.authority_queue SET queue_type = 'authority'; +ALTER TABLE vandelay.bib_queue ADD CONSTRAINT bib_queue_queue_type_check CHECK (queue_type IN ('bib')); +ALTER TABLE vandelay.authority_queue ADD CONSTRAINT authority_queue_queue_type_check CHECK (queue_type IN ('authority')); + +DELETE FROM permission.perm_list WHERE code = 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD'; +DELETE FROM vandelay.import_error WHERE code = 'import.record.perm_failure'; +*/ + + diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-vandelay-integration.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-vandelay-integration.sql deleted file mode 100644 index f5ce14e975..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-vandelay-integration.sql +++ /dev/null @@ -1,96 +0,0 @@ --- Evergreen DB patch XXXX.schema.acq-vandelay-integration.sql -BEGIN; - --- check whether patch can be applied -SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); - --- schema -- - --- Replace the constraints with more flexible ENUM's -ALTER TABLE vandelay.queue DROP CONSTRAINT queue_queue_type_check; -ALTER TABLE vandelay.bib_queue DROP CONSTRAINT bib_queue_queue_type_check; -ALTER TABLE vandelay.authority_queue DROP CONSTRAINT authority_queue_queue_type_check; - -CREATE TYPE vandelay.bib_queue_queue_type AS ENUM ('bib', 'acq'); -CREATE TYPE vandelay.authority_queue_queue_type AS ENUM ('authority'); - --- dropped column is also implemented by the child tables -ALTER TABLE vandelay.queue DROP COLUMN queue_type; - --- to recover after using the undo sql from below --- alter table vandelay.bib_queue add column queue_type text default 'bib' not null; --- alter table vandelay.authority_queue add column queue_type text default 'authority' not null; - --- modify the child tables to use the ENUMs -ALTER TABLE vandelay.bib_queue - ALTER COLUMN queue_type DROP DEFAULT, - ALTER COLUMN queue_type TYPE vandelay.bib_queue_queue_type - USING (queue_type::vandelay.bib_queue_queue_type), - ALTER COLUMN queue_type SET DEFAULT 'bib'; - -ALTER TABLE vandelay.authority_queue - ALTER COLUMN queue_type DROP DEFAULT, - ALTER COLUMN queue_type TYPE vandelay.authority_queue_queue_type - USING (queue_type::vandelay.authority_queue_queue_type), - ALTER COLUMN queue_type SET DEFAULT 'authority'; - --- give lineitems a pointer to their vandelay queued_record - -ALTER TABLE acq.lineitem ADD COLUMN queued_record BIGINT - REFERENCES vandelay.queued_bib_record (id) - ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; - -ALTER TABLE acq.acq_lineitem_history ADD COLUMN queued_record BIGINT - REFERENCES vandelay.queued_bib_record (id) - ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; - --- seed data -- - -INSERT INTO permission.perm_list ( id, code, description ) - VALUES ( - 521, - 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', - oils_i18n_gettext( - 521, - 'Allows a user to create new bibs directly from an ACQ MARC file upload', - 'ppl', - 'description' - ) - ); - - -INSERT INTO vandelay.import_error ( code, description ) - VALUES ( - 'import.record.perm_failure', - oils_i18n_gettext( - 'import.record.perm_failure', - 'Perm failure creating a record', 'vie', 'description') - ); - - -COMMIT; - -/* UNDO SQL --- XXX this does not exactly recover the state. The bib/auth queue_type colum is --- directly inherited instead of overridden, which will fail with some of the sql above. -ALTER TABLE acq.lineitem DROP COLUMN queued_record; -ALTER TABLE acq.acq_lineitem_history DROP COLUMN queued_record; -ALTER TABLE vandelay.authority_queue DROP COLUMN queue_type; -ALTER TABLE vandelay.bib_queue DROP COLUMN queue_type; - -DROP TYPE vandelay.bib_queue_queue_type; -DROP TYPE vandelay.authority_queue_queue_type; - -ALTER TABLE vandelay.bib_queue DROP CONSTRAINT vand_bib_queue_name_once_per_owner_const; -ALTER TABLE vandelay.authority_queue DROP CONSTRAINT vand_authority_queue_name_once_per_owner_const; - -ALTER TABLE vandelay.queue ADD COLUMN queue_type TEXT NOT NULL DEFAULT 'bib' CHECK (queue_type IN ('bib','authority')); -UPDATE vandelay.authority_queue SET queue_type = 'authority'; -ALTER TABLE vandelay.bib_queue ADD CONSTRAINT bib_queue_queue_type_check CHECK (queue_type IN ('bib')); -ALTER TABLE vandelay.authority_queue ADD CONSTRAINT authority_queue_queue_type_check CHECK (queue_type IN ('authority')); - -DELETE FROM permission.perm_list WHERE code = 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD'; -DELETE FROM vandelay.import_error WHERE code = 'import.record.perm_failure'; -*/ - -