Fix SQL in migrating data. Bug https://bugs.launchpad.net/evergreen/+bug/720068 repor...
[working/Evergreen.git] / 1.6 / admin / migratingdata_1.6.xml
index 305f916..cb665ae 100644 (file)
@@ -308,7 +308,7 @@ extract_holdings --marcfile=clean.marc.xml --holding 999 --copyid 999i --map hol
                                <para>The <option>map</option> option <filename>holdings.map</filename> refers to a file to be used for mapping subfields to the holdings data you would like extracted. Here is an example based on mapping holdings data to the 999 data field:</para>\r
 <programlisting>\r
 <![CDATA[\r
                                <para>The <option>map</option> option <filename>holdings.map</filename> refers to a file to be used for mapping subfields to the holdings data you would like extracted. Here is an example based on mapping holdings data to the 999 data field:</para>\r
 <programlisting>\r
 <![CDATA[\r
-call_num 999 a\r
+callnum 999 a\r
 barcode 999 i\r
 location 999 l\r
 owning_lib 999 m\r
 barcode 999 i\r
 location 999 l\r
 owning_lib 999 m\r
@@ -332,7 +332,7 @@ BEGIN;
 \r
 <emphasis class="bold">TRUNCATE TABLE staging_items;</emphasis>\r
 \r
 \r
 <emphasis class="bold">TRUNCATE TABLE staging_items;</emphasis>\r
 \r
-<emphasis class="bold">INSERT INTO staging_items (</emphasis>egid, hseq, l_call_num, l_barcode, \r
+<emphasis class="bold">INSERT INTO staging_items (</emphasis>egid, hseq, l_callnum, l_barcode, \r
 l_location, l_owning_lib, l_circ_modifier <emphasis>FROM stdin;</emphasis> \r
 40      0       HD3616.K853 U54 1997    30731100751928  STACKS  FENNELL BOOK\r
 41      1       HV6548.C3 S984 1998     30731100826613  STACKS  FENNELL BOOK\r
 l_location, l_owning_lib, l_circ_modifier <emphasis>FROM stdin;</emphasis> \r
 40      0       HD3616.K853 U54 1997    30731100751928  STACKS  FENNELL BOOK\r
 41      1       HV6548.C3 S984 1998     30731100826613  STACKS  FENNELL BOOK\r
@@ -356,14 +356,14 @@ l_location, l_owning_lib, l_circ_modifier <emphasis>FROM stdin;</emphasis>
                                <para>Create a staging_items staging table to hold the holdings data:</para>\r
 <programlisting language="sql">\r
 CREATE TABLE staging_items (\r
                                <para>Create a staging_items staging table to hold the holdings data:</para>\r
 <programlisting language="sql">\r
 CREATE TABLE staging_items (\r
-        callnum text, -- call number label\r
+        l_callnum text, -- call number label\r
        hseq int, -- call number label\r
         egid  int,  -- biblio.record_entry_id\r
         createdate      date,\r
        hseq int, -- call number label\r
         egid  int,  -- biblio.record_entry_id\r
         createdate      date,\r
-        location        text,\r
-        barcode         text,\r
-        item_type       text,\r
-        owning_lib      text  -- actor.org_unit.shortname\r
+        l_location        text,\r
+        l_barcode         text,\r
+        l_circ_modifier       text,\r
+        l_owning_lib      text  -- actor.org_unit.shortname\r
 );\r
 </programlisting>\r
                        </step> \r
 );\r
 </programlisting>\r
                        </step> \r
@@ -380,31 +380,31 @@ CREATE TABLE staging_items (
                                <para>Generate shelving locations from your staging table.</para>\r
 <programlisting language="sql">\r
 INSERT INTO asset.copy_location (name, owning_lib)\r
                                <para>Generate shelving locations from your staging table.</para>\r
 <programlisting language="sql">\r
 INSERT INTO asset.copy_location (name, owning_lib)\r
-SELECT  DISTINCT l.location, ou.id\r
+SELECT  DISTINCT l.l_location, ou.id\r
 FROM  staging_items l \r
 FROM  staging_items l \r
-       JOIN actor.org_unit ou  ON (l.owning_lib = ou.shortname); \r
+       JOIN actor.org_unit ou  ON (l.l_owning_lib = ou.shortname); \r
 </programlisting>\r
                        </step>\r
                        <step>\r
                                <para>Generate circulation modifiers from your staging table.</para>\r
 <programlisting language="sql">\r
 INSERT INTO config.circ_modifier (code, name, description, sip2_media_type, magnetic_media)\r
 </programlisting>\r
                        </step>\r
                        <step>\r
                                <para>Generate circulation modifiers from your staging table.</para>\r
 <programlisting language="sql">\r
 INSERT INTO config.circ_modifier (code, name, description, sip2_media_type, magnetic_media)\r
-        SELECT  DISTINCT item_type AS code,\r
-          item_type AS name,\r
-          LOWER(item_type) AS description,\r
+        SELECT  DISTINCT l_circ_modifier AS code,\r
+          l_circ_modifier AS name,\r
+          LOWER(l_circ_modifier) AS description,\r
           '001' AS sip2_media_type,\r
           FALSE AS magnetic_media\r
           FROM  staging_items\r
           '001' AS sip2_media_type,\r
           FALSE AS magnetic_media\r
           FROM  staging_items\r
-          WHERE item_type NOT IN (SELECT code FROM config.circ_modifier);\r
+          WHERE l_circ_modifier NOT IN (SELECT code FROM config.circ_modifier);\r
 </programlisting>\r
                        </step>\r
                        <step>\r
                                <para>Generate call numbers from your staging table:</para>\r
 <programlisting language="sql">\r
 INSERT INTO asset.call_number (creator,editor,record,label,owning_lib)\r
 </programlisting>\r
                        </step>\r
                        <step>\r
                                <para>Generate call numbers from your staging table:</para>\r
 <programlisting language="sql">\r
 INSERT INTO asset.call_number (creator,editor,record,label,owning_lib)\r
-SELECT  DISTINCT 1, 1, b.id, l.callnum, ou.id\r
-FROM  staging.staging_items l\r
-JOIN actor.org_unit ou ON (l.owning_lib = ou.shortname);\r
+  SELECT  DISTINCT 1, 1, l.egid, l.l_callnum, ou.id\r
+  FROM  staging_items l\r
+  JOIN actor.org_unit ou ON (l.l_owning_lib = ou.shortname);\r
 </programlisting>\r
                        </step>\r
                        <step>\r
 </programlisting>\r
                        </step>\r
                        <step>\r
@@ -417,27 +417,30 @@ STATUS, location, loan_duration, fine_level, circ_modifier, deposit, ref, call_n
 SELECT  DISTINCT ou.id AS circ_lib,\r
        1 AS creator,\r
        1 AS editor,\r
 SELECT  DISTINCT ou.id AS circ_lib,\r
        1 AS creator,\r
        1 AS editor,\r
-       l.createdate AS create_date,\r
-       l.barcode AS barcode,\r
+       l.l_createdate AS create_date,\r
+       l.l_barcode AS barcode,\r
        0 AS STATUS,\r
        cl.id AS location,\r
        2 AS loan_duration,\r
        2 AS fine_level,\r
        0 AS STATUS,\r
        cl.id AS location,\r
        2 AS loan_duration,\r
        2 AS fine_level,\r
-       l.item_type AS circ_modifier,\r
+       l.l_circ_modifier AS circ_modifier,\r
        FALSE AS deposit,\r
        CASE\r
        FALSE AS deposit,\r
        CASE\r
-       WHEN l.item_type = 'REFERENCE' THEN TRUE\r
+       WHEN l.l_circ_modifier = 'REFERENCE' THEN TRUE\r
        ELSE FALSE\r
        END AS ref,                                             \r
        cn.id AS call_number\r
        ELSE FALSE\r
        END AS ref,                                             \r
        cn.id AS call_number\r
-       FROM  staging.staging_items l\r
-       JOIN actor.org_unit ou\r
-               ON (l.owning_lib = ou.shortname)\r
-       JOIN asset.copy_location cl\r
-               ON (ou.id = cl.owning_lib AND l.location = cl.name)\r
-       JOIN asset.call_number cn\r
-               ON (ou.id = cn.owning_lib      \r
-               AND l.callnum = cn.label);\r
+       FROM  staging_items l\r
+               JOIN actor.org_unit ou\r
+                       ON (l.owning_lib = ou.shortname)\r
+               JOIN asset.copy_location cl\r
+                       ON (ou.id = cl.owning_lib AND l.l_location = cl.name)\r
+               JOIN metabib.real_full_rec m \r
+                       ON (m.value = l.egid)\r
+               JOIN asset.call_number cn\r
+                       ON (ou.id = cn.owning_lib  \r
+                       AND m.record = cn.record       \r
+                       AND l.l_callnum = cn.label)      \r
 </programlisting>\r
                                <para>You should now have copies in your Evergreen database and should be able to search and find the bibliographic records with attached copies.</para> \r
                        </step>\r
 </programlisting>\r
                                <para>You should now have copies in your Evergreen database and should be able to search and find the bibliographic records with attached copies.</para> \r
                        </step>\r