script, based on old final.load-bib.sql, to clear and (if modified so) to reload...
[migration-tools.git] / clear-db.sql
1 SET CLIENT_ENCODING TO 'UNICODE';
2
3 BEGIN;
4
5 SELECT reporter.disable_materialized_simple_record_trigger();
6
7 CREATE TEMP TABLE dummy_bib AS SELECT * FROM biblio.record_entry WHERE id = -1;
8 CREATE TEMP TABLE dummy_cn AS SELECT * FROM asset.call_number WHERE id = -1;
9
10 CREATE TEMP TABLE backup_loc AS SELECT * FROM asset.copy_location WHERE id = 1;
11 CREATE TEMP TABLE backup_usr AS SELECT * FROM actor.usr WHERE id = 1;
12 CREATE TEMP TABLE backup_card AS SELECT * FROM actor.card WHERE usr = 1;
13
14 UPDATE backup_usr SET card = NULL;
15
16 DROP INDEX metabib.metabib_full_rec_index_vector_idx;
17 DROP INDEX metabib.metabib_title_field_entry_index_vector_idx;
18 DROP INDEX metabib.metabib_author_field_entry_index_vector_idx;
19 DROP INDEX metabib.metabib_subject_field_entry_index_vector_idx;
20 DROP INDEX metabib.metabib_keyword_field_entry_index_vector_idx;
21 DROP INDEX metabib.metabib_series_field_entry_index_vector_idx;
22
23 TRUNCATE biblio.record_entry CASCADE;
24 TRUNCATE metabib.full_rec;
25 TRUNCATE metabib.rec_descriptor;
26 TRUNCATE metabib.title_field_entry;
27 TRUNCATE metabib.author_field_entry;
28 TRUNCATE metabib.subject_field_entry;
29 TRUNCATE metabib.keyword_field_entry;
30 TRUNCATE metabib.series_field_entry;
31 TRUNCATE auditor.biblio_record_entry_history;
32
33 TRUNCATE actor.usr CASCADE;
34 TRUNCATE actor.card CASCADE;
35 TRUNCATE actor.usr_address CASCADE;
36 TRUNCATE actor.stat_cat CASCADE;
37 TRUNCATE actor.stat_cat_entry_usr_map CASCADE;
38 TRUNCATE money.grocery CASCADE;
39 TRUNCATE money.billing CASCADE;
40 TRUNCATE action.circulation CASCADE;
41 TRUNCATE action.hold_request CASCADE;
42
43 SELECT SETVAL('biblio.record_entry_id_seq', 1);
44
45 SELECT SETVAL('money.billable_xact_id_seq', 1);
46 SELECT SETVAL('money.billing_id_seq', 1);
47
48 SELECT SETVAL('action.hold_request_id_seq', 1);
49
50 SELECT SETVAL('asset.call_number_id_seq', 2);
51 SELECT SETVAL('asset.copy_id_seq', 1);
52 SELECT SETVAL('asset.copy_location_id_seq', 2);
53 SELECT SETVAL('asset.stat_cat_id_seq', 1);
54 SELECT SETVAL('asset.stat_cat_entry_id_seq', 1);
55 SELECT SETVAL('asset.stat_cat_entry_copy_map_id_seq', 1);
56
57 SELECT SETVAL('actor.usr_id_seq', 2);
58 SELECT SETVAL('actor.card_id_seq', 2);
59 SELECT SETVAL('actor.usr_address_id_seq', 2);
60 SELECT SETVAL('actor.stat_cat_id_seq', 1);
61 SELECT SETVAL('actor.stat_cat_entry_id_seq', 1);
62 SELECT SETVAL('actor.stat_cat_entry_usr_map_id_seq', 1);
63
64 SELECT SETVAL('metabib.full_rec_id_seq', 1);
65 SELECT SETVAL('metabib.rec_descriptor_id_seq', 1);
66 SELECT SETVAL('metabib.title_field_entry_id_seq', 1);
67 SELECT SETVAL('metabib.author_field_entry_id_seq', 1);
68 SELECT SETVAL('metabib.subject_field_entry_id_seq', 1);
69 SELECT SETVAL('metabib.keyword_field_entry_id_seq', 1);
70 SELECT SETVAL('metabib.series_field_entry_id_seq', 1);
71 SELECT SETVAL('metabib.metarecord_id_seq', 1);
72 SELECT SETVAL('metabib.metarecord_source_map_id_seq', 1);
73
74 INSERT INTO biblio.record_entry SELECT * FROM dummy_bib;
75 INSERT INTO asset.call_number SELECT * FROM dummy_cn;
76 INSERT INTO asset.copy_location SELECT * FROM backup_loc;
77 INSERT INTO actor.usr SELECT * FROM backup_usr;
78 INSERT INTO actor.card SELECT * FROM backup_card;
79 UPDATE actor.usr SET card = actor.card.id FROM actor.card WHERE actor.usr.id = actor.card.usr;
80
81 -- Put any scripts that reload bibs/items/etc here.  Example included.
82 /*  
83
84 \i incumbent.sql
85 \i incoming.sql
86
87 */
88
89 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
90 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
91 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
92 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
93 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
94 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
95 CREATE INDEX metabib_full_rec_tag_subfield_idx ON metabib.full_rec (tag,subfield);
96 CREATE INDEX metabib_full_value_idx ON metabib.full_rec (value);
97
98 ALTER TABLE metabib.metarecord_source_map DROP CONSTRAINT metabib_metarecord_source_map_metarecord_fkey;
99
100 TRUNCATE metabib.metarecord;
101 TRUNCATE metabib.metarecord_source_map;
102
103 INSERT INTO metabib.metarecord (fingerprint,master_record)
104     SELECT  fingerprint,id
105       FROM  (SELECT DISTINCT ON (fingerprint)
106             fingerprint, id, quality
107           FROM  biblio.record_entry
108           ORDER BY fingerprint, quality desc) AS x
109       WHERE fingerprint IS NOT NULL;
110
111 INSERT INTO metabib.metarecord_source_map (metarecord,source)
112     SELECT  m.id, b.id
113       FROM  biblio.record_entry b
114         JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint);
115
116 ALTER TABLE metabib.metarecord_source_map
117         ADD CONSTRAINT metabib_metarecord_source_map_metarecord_fkey
118                 FOREIGN KEY (metarecord) REFERENCES metabib.metarecord (id) DEFERRABLE INITIALLY DEFERRED;
119
120 SELECT reporter.enable_materialized_simple_record_trigger();
121
122
123 -- COMMIT;
124 -- VACUUM FULL;
125