Lp 1813172: Option to Specify Attributes for Reingest in pingest.pl
authorJason Stephenson <jason@sigio.com>
Fri, 25 Jan 2019 13:14:40 +0000 (08:14 -0500)
committerBill Erickson <berickxx@gmail.com>
Wed, 20 Feb 2019 17:07:51 +0000 (12:07 -0500)
Add the --attr option to pingest.pl to specify one or more specific
attributes to be reingested by metabib.reingest_record_attributes.

Add a release note.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/support-scripts/pingest.pl
docs/RELEASE_NOTES_NEXT/Administration/pingest-specify-record-atrributes.adoc [new file with mode: 0644]

index d351cfa..c39981a 100755 (executable)
@@ -39,6 +39,7 @@ my $end_id;       # stop processing when this bib ID is reached.
 my $max_duration; # max processing duration in seconds
 my $help;         # show help text
 my $opt_pipe;     # Read record ids from STDIN.
+my $record_attrs; # Record attributes for metabib.reingest_record_attributes.
 
 # Database connection options with defaults:
 my $db_user = $ENV{PGUSER} || 'evergreen';
@@ -64,6 +65,7 @@ GetOptions(
     'end-id=i'       => \$end_id,
     'pipe'           => \$opt_pipe,
     'max-duration=i' => \$max_duration,
+    'attr=s@'        => \$record_attrs,
     'help'           => \$help
 );
 
@@ -86,6 +88,12 @@ sub help {
     --skip-display
         Skip the selected reingest component
 
+    --attr
+        Specify a record attribute for ingest
+        This option can be used more than once to specify multiple
+        attributes to ingest.
+        This option is ignored if --skip-attrs is also given.
+
     --start-id
         Start processing at this record ID.
 
@@ -301,13 +309,14 @@ sub reingest_attributes {
     my $dbh = shift;
     my $list = shift;
     my $sth = $dbh->prepare(<<END_OF_INGEST
-SELECT metabib.reingest_record_attributes(rid := id, prmarc := marc)
+SELECT metabib.reingest_record_attributes(rid := id, prmarc := marc, pattr_list := ?)
 FROM biblio.record_entry
 WHERE id = ?
 END_OF_INGEST
     );
+    $sth->bind_param(1, $record_attrs);
     foreach (@$list) {
-        $sth->bind_param(1, $_);
+        $sth->bind_param(2, $_);
         if ($sth->execute()) {
             my $crap = $sth->fetchall_arrayref();
         } else {
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/pingest-specify-record-atrributes.adoc b/docs/RELEASE_NOTES_NEXT/Administration/pingest-specify-record-atrributes.adoc
new file mode 100644 (file)
index 0000000..2f3bf7e
--- /dev/null
@@ -0,0 +1,21 @@
+Ability to Reingest Certain Record Attributes In pingest.pl
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+An option, `--attr`, has been added to the `pingest.pl` support script
+that allows the user to specify which record attributes to reingest.
+This option is used to specify which record attribute(s) to reingest.
+It can be used one or more times to specify one or more attributes to
+ingest.  It can be omitted to reingest all record attributes.  This
+option is ignored if the `--skip-attrs` option is used.
+
+The `--attr` option is most useful after doing something specific that
+requires only a partial ingest of records.  For instance, if you add a
+new language to the `config.coded_value_map` table, you will want to
+reingest the `item_lang` attribute on all of your records.  The
+following command line will do that, and only that, ingest:
+
+----
+$ /openils/bin/pingest.pl --skip-browse --skip-search --skip-facets \
+    --skip-display --attr=item_lang
+----
+