From: Galen Charlton Date: Wed, 19 Apr 2017 16:17:44 +0000 (-0400) Subject: LP#1680554: fix upgrade of subject|temporal_browse and subject|geographic_browse... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=0b682cc31dced892b899814697acd06f65bf6d7a;p=working%2FEvergreen.git LP#1680554: fix upgrade of subject|temporal_browse and subject|geographic_browse indexes This patch fixes an issue where an Evergreen database that was upgraded to 2.12.0 from an earlier version may not have had the browsability of the subject|temporal and subject|geographic indexes turned off in favor of the new *_browse versions. It also fixes mapping of the new *_browse indexes to authority control set bib fields. Note that if the database started at 2.12.0, the browse reingest can be cancelled. To test ------- [1] On a database that was upgraded to 2.12.0 from an earlier version, verify that after applying the database update and performing the browse reingest, that there are no metabib.browse_entry_def_map rows where def is 11 or 13. Also Also verify that the query that runs as part of the update [2] On a database that was installed starting at 2.12.0, verify that the database update is a no-op. Signed-off-by: Kathy Lussier --- diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.fix_subject_browse_mappings.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.fix_subject_browse_mappings.sql new file mode 100644 index 0000000000..d4f696e727 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.fix_subject_browse_mappings.sql @@ -0,0 +1,75 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +-- correctly turn off browsing for subjectd|geograhic and +-- subject|temporal now that the *_browse versions exist. This is +-- a no-op in a database that was started at version 2.12.0. +UPDATE config.metabib_field +SET browse_field = FALSE +WHERE field_class = 'subject' AND name = 'geographic' +AND browse_field +AND id = 11; +UPDATE config.metabib_field +SET browse_field = FALSE +WHERE field_class = 'subject' AND name = 'temporal' +AND browse_field +AND id = 13; + +select b.tag, idx.name +from authority.control_set_bib_field b +join authority.control_set_bib_field_metabib_field_map map on (b.id = map.bib_field) +join config.metabib_field idx on (map.metabib_field = idx.id) +order by b.tag; + +-- and fix bib field mapping if necessasry +UPDATE authority.control_set_bib_field_metabib_field_map map +SET metabib_field = cmf.id +FROM config.metabib_field cmf +WHERE cmf.field_class = 'subject' AND cmf.name= 'temporal_browse' +AND map.bib_field IN ( + SELECT b.id + FROM authority.control_set_bib_field b + JOIN authority.control_set_authority_field a + ON (b.authority_field = a.id) + AND a.tag = '148' +) +AND map.metabib_field IN ( + SELECT id + FROM config.metabib_field + WHERE field_class = 'subject' AND name = 'geographic_browse' +); +UPDATE authority.control_set_bib_field_metabib_field_map map +SET metabib_field = cmf.id +FROM config.metabib_field cmf +WHERE cmf.field_class = 'subject' AND cmf.name= 'geographic_browse' +AND map.bib_field IN ( + SELECT b.id + FROM authority.control_set_bib_field b + JOIN authority.control_set_authority_field a + ON (b.authority_field = a.id) + AND a.tag = '151' +) +AND map.metabib_field IN ( + SELECT id + FROM config.metabib_field + WHERE field_class = 'subject' AND name = 'temporal_browse' +); + +\qecho Verify that bib subject fields appear to be mapped to +\qecho to correct browse indexes +SELECT b.id, b.tag, idx.field_class, idx.name +FROM authority.control_set_bib_field b +JOIN authority.control_set_bib_field_metabib_field_map map ON (b.id = map.bib_field) +JOIN config.metabib_field idx ON (map.metabib_field = idx.id) +WHERE tag ~ '^6' +ORDER BY b.tag; + +COMMIT; + +\qecho This is a browse-only reingest of your bib records. It may take a while. +\qecho You may cancel now without losing the effect of the rest of the +\qecho upgrade script, and arrange the reingest later. +\qecho . +SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE) + FROM biblio.record_entry;