Before bibliographic records can be found in an OPAC search copies will need to be created. It is very important to understand how various tables related to each other in regards to holdings maintenance.
The following procedure will guide you through the process of populating Evergreen with volumes and copies. This is a very simple example. The SQL queries may need to be adjusted for the specific data in your holdings.
Create a staging_items staging table to hold the holdings data:
CREATE TABLE staging_items ( l_callnum text, -- call number label hseq int, egid int, -- biblio.record_entry_id createdate date, l_location text, l_barcode text, l_circ_modifier text, l_owning_lib text -- actor.org_unit.shortname );
Import the items using the HOLDINGS.pg SQL script created using the extract_holdings utility.
psql -U evergreen -f HOLDINGS.pg evergreen
the file HOLDINGS.pg
and/or the COPY query may need to be adjusted for your particular circumstances.
Generate shelving locations from your staging table.
INSERT INTO asset.copy_location (name, owning_lib) SELECT DISTINCT l.location, ou.id FROM staging_items l JOIN actor.org_unit ou ON (l.owning_lib = ou.shortname);
Generate circulation modifiers from your staging table.
INSERT INTO config.circ_modifier (code, name, description, sip2_media_type, magnetic_media) SELECT DISTINCT l_circ_modifier AS code, l_circ_modifier AS name, LOWER(l_circ_modifier) AS description, '001' AS sip2_media_type, FALSE AS magnetic_media FROM staging_items WHERE l_circ_modifier NOT IN (SELECT code FROM config.circ_modifier);
Generate call numbers from your staging table:
INSERT INTO asset.call_number (creator,editor,record,label,owning_lib) SELECT DISTINCT 1, 1, egid, l.callnum, ou.id FROM staging.staging_items l JOIN actor.org_unit ou ON (l.owning_lib = ou.shortname);
Generate copies from your staging table:
INSERT INTO asset.copy ( circ_lib, creator, editor, create_date, barcode, STATUS, location, loan_duration, fine_level, circ_modifier, deposit, ref, call_number) SELECT DISTINCT ou.id AS circ_lib, 1 AS creator, 1 AS editor, l.l_createdate AS create_date, l.l_barcode AS barcode, 0 AS STATUS, cl.id AS location, 2 AS loan_duration, 2 AS fine_level, l.l_circ_modifier AS circ_modifier, FALSE AS deposit, CASE WHEN l.l_circ_modifier = 'REFERENCE' THEN TRUE ELSE FALSE END AS ref, cn.id AS call_number FROM staging_items l JOIN actor.org_unit ou ON (l.l_owning_lib = ou.shortname) JOIN asset.copy_location cl ON (ou.id = cl.owning_lib AND l.l_location = cl.name) JOIN metabib.real_full_rec m ON (m.record = l.egid) JOIN asset.call_number cn ON (ou.id = cn.owning_lib AND m.record = cn.record AND l.l_callnum = cn.label)
You should now have copies in your Evergreen database and should be able to search and find the bibliographic records with attached copies.