From: Galen Charlton Date: Mon, 24 Jul 2017 15:32:10 +0000 (-0400) Subject: LP#1673857: stamp schema update X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=fc9af0e90530c034f4ae0545e286cc44964fce6d;p=working%2FEvergreen.git LP#1673857: stamp schema update Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 9edf3b1ef2..468d4ec6c4 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -90,7 +90,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 ('1046', :eg_version); -- phasefx/berick/gmcharlt +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1047', :eg_version); -- gmcharlt/stompro CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/1047.schema.copy_tags.sql b/Open-ILS/src/sql/Pg/upgrade/1047.schema.copy_tags.sql new file mode 100644 index 0000000000..896ac7f042 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/1047.schema.copy_tags.sql @@ -0,0 +1,98 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('1047', :eg_version); -- gmcharlt/stompro + +CREATE TABLE config.copy_tag_type ( + code TEXT NOT NULL PRIMARY KEY, + label TEXT NOT NULL, + owner INTEGER NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED +); + +CREATE INDEX config_copy_tag_type_owner_idx + ON config.copy_tag_type (owner); + +CREATE TABLE asset.copy_tag ( + id SERIAL PRIMARY KEY, + tag_type TEXT REFERENCES config.copy_tag_type (code) + ON UPDATE CASCADE ON DELETE CASCADE, + label TEXT NOT NULL, + value TEXT NOT NULL, + index_vector tsvector NOT NULL, + staff_note TEXT, + pub BOOLEAN DEFAULT TRUE, + owner INTEGER NOT NULL REFERENCES actor.org_unit (id) +); + +CREATE INDEX asset_copy_tag_label_idx + ON asset.copy_tag (label); +CREATE INDEX asset_copy_tag_label_lower_idx + ON asset.copy_tag (evergreen.lowercase(label)); +CREATE INDEX asset_copy_tag_index_vector_idx + ON asset.copy_tag + USING GIN(index_vector); +CREATE INDEX asset_copy_tag_tag_type_idx + ON asset.copy_tag (tag_type); +CREATE INDEX asset_copy_tag_owner_idx + ON asset.copy_tag (owner); + +CREATE OR REPLACE FUNCTION asset.set_copy_tag_value () RETURNS TRIGGER AS $$ +BEGIN + IF NEW.value IS NULL THEN + NEW.value = NEW.label; + END IF; + + RETURN NEW; +END; +$$ LANGUAGE 'plpgsql'; + +-- name of following trigger chosen to ensure it runs first +CREATE TRIGGER asset_copy_tag_do_value + BEFORE INSERT OR UPDATE ON asset.copy_tag + FOR EACH ROW EXECUTE PROCEDURE asset.set_copy_tag_value(); +CREATE TRIGGER asset_copy_tag_fti_trigger + BEFORE UPDATE OR INSERT ON asset.copy_tag + FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('default'); + +CREATE TABLE asset.copy_tag_copy_map ( + id BIGSERIAL PRIMARY KEY, + copy BIGINT REFERENCES asset.copy (id) + ON UPDATE CASCADE ON DELETE CASCADE, + tag INTEGER REFERENCES asset.copy_tag (id) + ON UPDATE CASCADE ON DELETE CASCADE +); + +CREATE INDEX asset_copy_tag_copy_map_copy_idx + ON asset.copy_tag_copy_map (copy); +CREATE INDEX asset_copy_tag_copy_map_tag_idx + ON asset.copy_tag_copy_map (tag); + +INSERT INTO config.copy_tag_type (code, label, owner) VALUES ('bookplate', 'Digital Bookplate', 1); + +INSERT INTO permission.perm_list ( id, code, description ) VALUES + ( 590, 'ADMIN_COPY_TAG_TYPES', oils_i18n_gettext( 590, + 'Administer copy tag types', 'ppl', 'description' )), + ( 591, 'ADMIN_COPY_TAG', oils_i18n_gettext( 591, + 'Administer copy tag', 'ppl', 'description' )) +; + +INSERT INTO config.org_unit_setting_type + (name, label, description, grp, datatype) +VALUES ( + 'opac.search.enable_bookplate_search', + oils_i18n_gettext( + 'opac.search.enable_bookplate_search', + 'Enable Digital Bookplate Search', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'opac.search.enable_bookplate_search', + 'If enabled, adds a "Digital Bookplate" option to the query type selectors in the public catalog for search on copy tags.', + 'coust', + 'description' + ), + 'opac', + 'bool' +); + +COMMIT; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_tags.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_tags.sql deleted file mode 100644 index 07cabb94a8..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_tags.sql +++ /dev/null @@ -1,96 +0,0 @@ -BEGIN; - -CREATE TABLE config.copy_tag_type ( - code TEXT NOT NULL PRIMARY KEY, - label TEXT NOT NULL, - owner INTEGER NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED -); - -CREATE INDEX config_copy_tag_type_owner_idx - ON config.copy_tag_type (owner); - -CREATE TABLE asset.copy_tag ( - id SERIAL PRIMARY KEY, - tag_type TEXT REFERENCES config.copy_tag_type (code) - ON UPDATE CASCADE ON DELETE CASCADE, - label TEXT NOT NULL, - value TEXT NOT NULL, - index_vector tsvector NOT NULL, - staff_note TEXT, - pub BOOLEAN DEFAULT TRUE, - owner INTEGER NOT NULL REFERENCES actor.org_unit (id) -); - -CREATE INDEX asset_copy_tag_label_idx - ON asset.copy_tag (label); -CREATE INDEX asset_copy_tag_label_lower_idx - ON asset.copy_tag (evergreen.lowercase(label)); -CREATE INDEX asset_copy_tag_index_vector_idx - ON asset.copy_tag - USING GIN(index_vector); -CREATE INDEX asset_copy_tag_tag_type_idx - ON asset.copy_tag (tag_type); -CREATE INDEX asset_copy_tag_owner_idx - ON asset.copy_tag (owner); - -CREATE OR REPLACE FUNCTION asset.set_copy_tag_value () RETURNS TRIGGER AS $$ -BEGIN - IF NEW.value IS NULL THEN - NEW.value = NEW.label; - END IF; - - RETURN NEW; -END; -$$ LANGUAGE 'plpgsql'; - --- name of following trigger chosen to ensure it runs first -CREATE TRIGGER asset_copy_tag_do_value - BEFORE INSERT OR UPDATE ON asset.copy_tag - FOR EACH ROW EXECUTE PROCEDURE asset.set_copy_tag_value(); -CREATE TRIGGER asset_copy_tag_fti_trigger - BEFORE UPDATE OR INSERT ON asset.copy_tag - FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('default'); - -CREATE TABLE asset.copy_tag_copy_map ( - id BIGSERIAL PRIMARY KEY, - copy BIGINT REFERENCES asset.copy (id) - ON UPDATE CASCADE ON DELETE CASCADE, - tag INTEGER REFERENCES asset.copy_tag (id) - ON UPDATE CASCADE ON DELETE CASCADE -); - -CREATE INDEX asset_copy_tag_copy_map_copy_idx - ON asset.copy_tag_copy_map (copy); -CREATE INDEX asset_copy_tag_copy_map_tag_idx - ON asset.copy_tag_copy_map (tag); - -INSERT INTO config.copy_tag_type (code, label, owner) VALUES ('bookplate', 'Digital Bookplate', 1); - -INSERT INTO permission.perm_list ( id, code, description ) VALUES - ( 590, 'ADMIN_COPY_TAG_TYPES', oils_i18n_gettext( 590, - 'Administer copy tag types', 'ppl', 'description' )), - ( 591, 'ADMIN_COPY_TAG', oils_i18n_gettext( 591, - 'Administer copy tag', 'ppl', 'description' )) -; - -INSERT INTO config.org_unit_setting_type - (name, label, description, grp, datatype) -VALUES ( - 'opac.search.enable_bookplate_search', - oils_i18n_gettext( - 'opac.search.enable_bookplate_search', - 'Enable Digital Bookplate Search', - 'coust', - 'label' - ), - oils_i18n_gettext( - 'opac.search.enable_bookplate_search', - 'If enabled, adds a "Digital Bookplate" option to the query type selectors in the public catalog for search on copy tags.', - 'coust', - 'description' - ), - 'opac', - 'bool' -); - -COMMIT;