From: Galen Charlton Date: Tue, 14 Aug 2018 01:01:31 +0000 (-0400) Subject: LP#1772680: sort out seed data and upgrade for new RBdigital YAOUS X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=744b9511d5f3df7a9bfd1f8afc55bf504425732f;p=evergreen%2Fpines.git LP#1772680: sort out seed data and upgrade for new RBdigital YAOUS Signed-off-by: Galen Charlton LP#1772680: schema updates This includes tables used by the RBdigital integration, putting them in a new schema called 'extra' that's meant to collect Evergreen extensions and integrations that are optional but ship with Evergreen. Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/sql/Pg/700.schema.extras.sql b/Open-ILS/src/sql/Pg/700.schema.extras.sql new file mode 100644 index 0000000000..4ffc52c30d --- /dev/null +++ b/Open-ILS/src/sql/Pg/700.schema.extras.sql @@ -0,0 +1,62 @@ +-- Schema for storing database objects used by optional Evergreen +-- extensions and integrations that are included in the core +-- Evergreen distribution. + +DROP SCHEMA IF EXISTS extra CASCADE; + +CREATE SCHEMA extra; -- schema for various extensions + +CREATE TABLE extra.rbdigital_digital_services ( + id SERIAL PRIMARY KEY, + name CHARACTER VARYING(50) NOT NULL, + is_enabled BOOLEAN NOT NULL, + search_uri CHARACTER VARYING(120) NOT NULL, + vendor_key CHARACTER VARYING(20) NOT NULL, + display_order SMALLINT DEFAULT 1 +); +COMMENT ON TABLE extra.rbdigital_digital_services IS 'This table should contain a single record for each digital media service integrated into Evergreen. '; + +INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (1, 'Evergreen', true, '/results', 'default', 1); +INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (2, 'RBdigital', true, '/ebook_api/rbdigital/results', 'rbdigital', 2); + +CREATE TABLE extra.rbdigital_library ( + home_library_url CHARACTER VARYING(250), + created_timestamp TIMESTAMP(6) WITH TIME ZONE DEFAULT now(), + updated_timestamp TIMESTAMP(6) WITH TIME ZONE DEFAULT now(), + id SERIAL PRIMARY KEY, + home_ou INTEGER NOT NULL REFERENCES actor.org_unit(id) +); +COMMENT ON TABLE extra.rbdigital_library IS 'A table defining each entity that may purchase titles.'; + +CREATE TABLE extra.rbdigital_digital_services_authorized ( + digital_services_id SMALLSERIAL PRIMARY KEY, + digital_services_library_id CHARACTER VARYING(64), + digital_services_library_token CHARACTER VARYING(64), + digital_services_name CHARACTER VARYING(20), + digital_services_library_url CHARACTER VARYING(250), + id SERIAL NOT NULL, + library_id INTEGER REFERENCES extra.rbdigital_library(id), + home_ou INTEGER +); +COMMENT ON TABLE extra.rbdigital_digital_services_authorized IS 'A table listing the digital services authorized for each entity listed in the library table described above.'; + +CREATE TABLE extra.rbdigital_search_field_mappings ( + id BIGSERIAL PRIMARY KEY, + evergreen_field_value CHARACTER VARYING(120), + digital_services_field_value CHARACTER VARYING(120), + search_fields_id INTEGER, + evergreen_field_code CHARACTER VARYING(15), + digital_services_field_code CHARACTER VARYING(25) +); + +CREATE TABLE extra.rbdigital_search_fields ( + id SERIAL PRIMARY KEY, + digital_services_id INTEGER, + evergreen_field CHARACTER VARYING(125), + digital_services_field CHARACTER VARYING(125), + field_type CHARACTER VARYING(50) +); + +COMMENT ON TABLE extra.rbdigital_search_fields IS 'The purpose of this table is to map the Evergreen search fields to the analogous fields for each digital service. Therefore each integrated digital service will have a record in this table.'; + +COMMIT; diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index 02907200b1..9ee2cad0b2 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -20001,7 +20001,7 @@ VALUES ( ) ), ( 'eg.grid.admin.server.config.z3950_index_field_map', 'gui', 'object', - oils_i18n_gettext( +oils_i18n_gettext( 'eg.grid.admin.server.config.z3950_index_field_map', 'Grid Config: admin.server.config.z3950_index_field_map', 'cwst', 'label' @@ -20274,6 +20274,58 @@ $TEMPLATE$ -- Allow for 1k stock templates SELECT SETVAL('config.print_template_id_seq'::TEXT, 1000); +INSERT INTO config.org_unit_setting_type + (name, label, description, grp, datatype) +VALUES ( + 'ebook_api.rbdigital.base_uri', + oils_i18n_gettext( + 'ebook_api.rbdigital.base_uri', + 'RBDigital Base URI', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.base_uri', + 'Base URI for RBDigital API (defaults to https://api.rbdigital.com/v1). Using HTTPS here is strongly encouraged.', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +),( + 'ebook_api.rbdigital.library_id', + oils_i18n_gettext( + 'ebook_api.rbdigital.library_id', + 'RBDigital Library ID', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.library_id', + 'Identifier assigned to this library by RBDigital', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +),( + 'ebook_api.rbdigital.basic_token', + oils_i18n_gettext( + 'ebook_api.rbdigital.basic_token', + 'RBDigital Basic Token', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.basic_token', + 'Basic token for client authentication with RBDigital API (supplied by RBDigital)', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +); + INSERT INTO config.workstation_setting_type (name, grp, datatype, label) VALUES ( 'eg.grid.booking.manage', 'gui', 'object', diff --git a/Open-ILS/src/sql/Pg/sql_file_manifest b/Open-ILS/src/sql/Pg/sql_file_manifest index e4f9152166..72f5a98c70 100644 --- a/Open-ILS/src/sql/Pg/sql_file_manifest +++ b/Open-ILS/src/sql/Pg/sql_file_manifest @@ -49,6 +49,8 @@ FTS_CONFIG_FILE 500.view.cross-schema.sql +700.schema.extras.sql + 800.fkeys.sql 900.audit-functions.sql diff --git a/Open-ILS/src/sql/Pg/upgrade/1030.data.org-setting.ebook-api-rbdigital.sql b/Open-ILS/src/sql/Pg/upgrade/1030.data.org-setting.ebook-api-rbdigital.sql deleted file mode 100644 index fab2dc9306..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/1030.data.org-setting.ebook-api-rbdigital.sql +++ /dev/null @@ -1,63 +0,0 @@ -BEGIN; - -SELECT evergreen.upgrade_deps_block_check('1030', :eg_version); - -INSERT INTO config.org_unit_setting_type - (name, label, description, grp, datatype) -VALUES ( - 'ebook_api.rbdigital.base_uri', - oils_i18n_gettext( - 'ebook_api.rbdigital.base_uri', - 'RBDigital Base URI', - 'coust', - 'label' - ), - oils_i18n_gettext( - 'ebook_api.rbdigital.base_uri', - 'Base URI for RBDigital API (defaults to https://api.rbdigital.com/v1). Using HTTPS here is strongly encouraged.', - 'coust', - 'description' - ), - 'ebook_api', - 'string' -),( - 'ebook_api.rbdigital.library_id', - oils_i18n_gettext( - 'ebook_api.rbdigital.library_id', - 'RBDigital Library ID', - 'coust', - 'label' - ), - oils_i18n_gettext( - 'ebook_api.rbdigital.library_id', - 'Identifier assigned to this library by RBDigital', - 'coust', - 'description' - ), - 'ebook_api', - 'string' -),( - 'ebook_api.rbdigital.basic_token', - oils_i18n_gettext( - 'ebook_api.rbdigital.basic_token', - 'RBDigital Basic Token', - 'coust', - 'label' - ), - oils_i18n_gettext( - 'ebook_api.rbdigital.basic_token', - 'Basic token for client authentication with RBDigital API (supplied by RBDigital)', - 'coust', - 'description' - ), - 'ebook_api', - 'string' -); - -INSERT INTO actor.org_unit_setting (org_unit, name, value) - VALUES - (1, 'ebook_api.rbdigital.base_uri', '"api.rbdigital.com"'), - (1, 'ebook_api.rbdigital.basic_token', '"BF8DD41C-B286-4F60-9FF5-F4C5B3E57A11"'), - (1, 'ebook_api.rbdigital.library_id', '"3925"'); -COMMIT; - diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting.ebook-api-rbdigital.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting.ebook-api-rbdigital.sql new file mode 100644 index 0000000000..4e525f38ca --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting.ebook-api-rbdigital.sql @@ -0,0 +1,58 @@ +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +INSERT INTO config.org_unit_setting_type + (name, label, description, grp, datatype) +VALUES ( + 'ebook_api.rbdigital.base_uri', + oils_i18n_gettext( + 'ebook_api.rbdigital.base_uri', + 'RBDigital Base URI', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.base_uri', + 'Base URI for RBDigital API (defaults to https://api.rbdigital.com/v1). Using HTTPS here is strongly encouraged.', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +),( + 'ebook_api.rbdigital.library_id', + oils_i18n_gettext( + 'ebook_api.rbdigital.library_id', + 'RBDigital Library ID', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.library_id', + 'Identifier assigned to this library by RBDigital', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +),( + 'ebook_api.rbdigital.basic_token', + oils_i18n_gettext( + 'ebook_api.rbdigital.basic_token', + 'RBDigital Basic Token', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'ebook_api.rbdigital.basic_token', + 'Basic token for client authentication with RBDigital API (supplied by RBDigital)', + 'coust', + 'description' + ), + 'ebook_api', + 'string' +); + +COMMIT; + diff --git a/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.extras_rbdigital.sql b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.extras_rbdigital.sql new file mode 100644 index 0000000000..076db26222 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.extras_rbdigital.sql @@ -0,0 +1,58 @@ +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +CREATE SCHEMA extra; -- schema for various extensions + +CREATE TABLE extra.rbdigital_digital_services ( + id SERIAL PRIMARY KEY, + name CHARACTER VARYING(50) NOT NULL, + is_enabled BOOLEAN NOT NULL, + search_uri CHARACTER VARYING(120) NOT NULL, + vendor_key CHARACTER VARYING(20) NOT NULL, + display_order SMALLINT DEFAULT 1 +); +COMMENT ON TABLE extra.rbdigital_digital_services IS 'This table should contain a single record for each digital media service integrated into Evergreen. '; + +INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (1, 'Evergreen', true, '/results', 'default', 1); +INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (2, 'RBdigital', true, '/ebook_api/rbdigital/results', 'rbdigital', 2); + +CREATE TABLE extra.rbdigital_library ( + home_library_url CHARACTER VARYING(250), + created_timestamp TIMESTAMP(6) WITH TIME ZONE DEFAULT now(), + updated_timestamp TIMESTAMP(6) WITH TIME ZONE DEFAULT now(), + id SERIAL PRIMARY KEY, + home_ou INTEGER NOT NULL REFERENCES actor.org_unit(id) +); +COMMENT ON TABLE extra.rbdigital_library IS 'A table defining each entity that may purchase titles.'; + +CREATE TABLE extra.rbdigital_digital_services_authorized ( + digital_services_id SMALLSERIAL PRIMARY KEY, + digital_services_library_id CHARACTER VARYING(64), + digital_services_library_token CHARACTER VARYING(64), + digital_services_name CHARACTER VARYING(20), + digital_services_library_url CHARACTER VARYING(250), + id SERIAL NOT NULL, + library_id INTEGER REFERENCES extra.rbdigital_library(id), + home_ou INTEGER +); +COMMENT ON TABLE extra.rbdigital_digital_services_authorized IS 'A table listing the digital services authorized for each entity listed in the library table described above.'; + +CREATE TABLE extra.rbdigital_search_field_mappings ( + id BIGSERIAL PRIMARY KEY, + evergreen_field_value CHARACTER VARYING(120), + digital_services_field_value CHARACTER VARYING(120), + search_fields_id INTEGER, + evergreen_field_code CHARACTER VARYING(15), + digital_services_field_code CHARACTER VARYING(25) +); + +CREATE TABLE extra.rbdigital_search_fields ( + id SERIAL PRIMARY KEY, + digital_services_id INTEGER, + evergreen_field CHARACTER VARYING(125), + digital_services_field CHARACTER VARYING(125), + field_type CHARACTER VARYING(50) +); + +COMMENT ON TABLE extra.rbdigital_search_fields IS 'The purpose of this table is to map the Evergreen search fields to the analogous fields for each digital service. Therefore each integrated digital service will have a record in this table.';