From d251e7176e2bd50121801a019512049ee9efd16c Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 26 Sep 2017 17:10:10 -0400 Subject: [PATCH] LP#1719726: add authority reingest Signed-off-by: Galen Charlton Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- .../2.12.5-3.0-beta1-upgrade-db.sql | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql index 7fc9b51936..df2ac2d539 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql @@ -7106,13 +7106,15 @@ ALTER TABLE biblio.record_entry ENABLE TRIGGER fingerprint_tgr; COMMIT; \echo --------------------------------------------------------------------- -\echo Reingest display fields. This can ban canceled via Ctrl-C and run at +\echo Reingest display fields. This can be canceled via Ctrl-C and run at \echo a later time with the following (or similar) SQL: \echo \echo 'SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE, ' \echo ' (SELECT ARRAY_AGG(id)::INT[] FROM config.metabib_field WHERE display_field))' \echo ' FROM biblio.record_entry WHERE NOT deleted AND id > 0;' \echo +\echo Note that if you cancel now, you will also need to do the authority reingest +\echo further down in the upgrade script. -- REINGEST DISPLAY ENTRIES SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE, @@ -7120,3 +7122,54 @@ SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE, FROM biblio.record_entry WHERE NOT deleted AND id > 0; +\echo --------------------------------------------------------------------- +\echo Reingest authority records. This can be canceled via Ctrl-C and run +\echo at a later time; see the upgrade script. Note that if you cancel now, +\echo you should consult this upgrade script for the reingest actions required. +BEGIN; + +CREATE TEMPORARY TABLE internal_flag_state AS + SELECT name, enabled + FROM config.internal_flag + WHERE name in ( + 'ingest.reingest.force_on_same_marc', + 'ingest.disable_authority_auto_update', + 'ingest.disable_authority_full_rec' + ); + +-- work around fact that ingest.disable_authority_full_rec may not exist +INSERT INTO config.internal_flag (name, enabled) +SELECT 'ingest.disable_authority_full_rec', TRUE +WHERE NOT EXISTS (SELECT 1 FROM config.internal_flag WHERE name = 'ingest.disable_authority_full_rec'); + +UPDATE config.internal_flag +SET enabled = TRUE +WHERE name in ( + 'ingest.reingest.force_on_same_marc', + 'ingest.disable_authority_auto_update', + 'ingest.disable_authority_full_rec' +); + +ALTER TABLE authority.record_entry DISABLE TRIGGER a_marcxml_is_well_formed; +ALTER TABLE authority.record_entry DISABLE TRIGGER b_maintain_901; +ALTER TABLE authority.record_entry DISABLE TRIGGER c_maintain_control_numbers; +ALTER TABLE authority.record_entry DISABLE TRIGGER map_thesaurus_to_control_set; + +UPDATE authority.record_entry SET id = id WHERE NOT DELETED; + +ALTER TABLE authority.record_entry ENABLE TRIGGER a_marcxml_is_well_formed; +ALTER TABLE authority.record_entry ENABLE TRIGGER b_maintain_901; +ALTER TABLE authority.record_entry ENABLE TRIGGER c_maintain_control_numbers; +ALTER TABLE authority.record_entry ENABLE TRIGGER map_thesaurus_to_control_set; + +-- and restore +UPDATE config.internal_flag a +SET enabled = b.enabled +FROM internal_flag_state b +WHERE a.name = b.name; + +DELETE FROM config.internal_flag +WHERE name = 'ingest.disable_authority_full_rec' +AND NOT EXISTS (SELECT 1 FROM internal_flag_state WHERE name = 'ingest.disable_authority_full_rec'); + +COMMIT; -- 2.43.2