7e31652fb6ada826a51534094df6cfc5f1c3dd1c
[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_full_value_idx;
18 DROP INDEX metabib.metabib_title_field_entry_index_vector_idx;
19 DROP INDEX metabib.metabib_author_field_entry_index_vector_idx;
20 DROP INDEX metabib.metabib_subject_field_entry_index_vector_idx;
21 DROP INDEX metabib.metabib_keyword_field_entry_index_vector_idx;
22 DROP INDEX metabib.metabib_series_field_entry_index_vector_idx;
23 DROP INDEX metabib.metabib_full_rec_tag_subfield_idx;
24
25
26 TRUNCATE biblio.record_entry CASCADE;
27 TRUNCATE metabib.full_rec;
28 TRUNCATE metabib.rec_descriptor;
29 TRUNCATE metabib.title_field_entry;
30 TRUNCATE metabib.author_field_entry;
31 TRUNCATE metabib.subject_field_entry;
32 TRUNCATE metabib.keyword_field_entry;
33 TRUNCATE metabib.series_field_entry;
34 TRUNCATE auditor.biblio_record_entry_history;
35 TRUNCATE asset.copy_location CASCADE;
36
37 TRUNCATE actor.usr CASCADE;
38 TRUNCATE actor.card CASCADE;
39 TRUNCATE actor.usr_address CASCADE;
40 TRUNCATE actor.stat_cat CASCADE;
41 TRUNCATE actor.stat_cat_entry_usr_map CASCADE;
42 TRUNCATE money.grocery CASCADE;
43 TRUNCATE money.billing CASCADE;
44 TRUNCATE action.circulation CASCADE;
45 TRUNCATE action.hold_request CASCADE;
46
47 SELECT SETVAL('biblio.record_entry_id_seq', 1);
48
49 SELECT SETVAL('money.billable_xact_id_seq', 1);
50 SELECT SETVAL('money.billing_id_seq', 1);
51
52 SELECT SETVAL('action.hold_request_id_seq', 1);
53
54 SELECT SETVAL('asset.call_number_id_seq', 2);
55 SELECT SETVAL('asset.copy_id_seq', 1);
56 SELECT SETVAL('asset.copy_location_id_seq', 2);
57 SELECT SETVAL('asset.stat_cat_id_seq', 1);
58 SELECT SETVAL('asset.stat_cat_entry_id_seq', 1);
59 SELECT SETVAL('asset.stat_cat_entry_copy_map_id_seq', 1);
60
61 SELECT SETVAL('actor.usr_id_seq', 2);
62 SELECT SETVAL('actor.card_id_seq', 2);
63 SELECT SETVAL('actor.usr_address_id_seq', 2);
64 SELECT SETVAL('actor.stat_cat_id_seq', 1);
65 SELECT SETVAL('actor.stat_cat_entry_id_seq', 1);
66 SELECT SETVAL('actor.stat_cat_entry_usr_map_id_seq', 1);
67
68 SELECT SETVAL('metabib.full_rec_id_seq', 1);
69 SELECT SETVAL('metabib.rec_descriptor_id_seq', 1);
70 SELECT SETVAL('metabib.title_field_entry_id_seq', 1);
71 SELECT SETVAL('metabib.author_field_entry_id_seq', 1);
72 SELECT SETVAL('metabib.subject_field_entry_id_seq', 1);
73 SELECT SETVAL('metabib.keyword_field_entry_id_seq', 1);
74 SELECT SETVAL('metabib.series_field_entry_id_seq', 1);
75 SELECT SETVAL('metabib.metarecord_id_seq', 1);
76 SELECT SETVAL('metabib.metarecord_source_map_id_seq', 1);
77
78 INSERT INTO biblio.record_entry SELECT * FROM dummy_bib;
79 INSERT INTO asset.call_number SELECT * FROM dummy_cn;
80 INSERT INTO asset.copy_location SELECT * FROM backup_loc;
81 INSERT INTO actor.usr SELECT * FROM backup_usr;
82 INSERT INTO actor.card SELECT * FROM backup_card;
83 UPDATE actor.usr SET card = actor.card.id FROM actor.card WHERE actor.usr.id = actor.card.usr;
84
85 -- Put any scripts that reload bibs/items/etc here.  Example included.
86 /*  
87
88 \i incumbent.sql
89 \i incoming.sql
90
91 */
92 \i IN.sql
93
94 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
95 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
96 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
97 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
98 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
99 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
100 CREATE INDEX metabib_full_rec_tag_subfield_idx ON metabib.full_rec (tag,subfield);
101 CREATE INDEX metabib_full_value_idx ON metabib.full_rec (value);
102
103 /*  Run the AFTER committing ...
104
105 ALTER TABLE metabib.metarecord_source_map DROP CONSTRAINT metabib_metarecord_source_map_metarecord_fkey;
106
107 TRUNCATE metabib.metarecord;
108 TRUNCATE metabib.metarecord_source_map;
109
110 INSERT INTO metabib.metarecord (fingerprint,master_record)
111     SELECT  fingerprint,id
112       FROM  (SELECT DISTINCT ON (fingerprint)
113             fingerprint, id, quality
114           FROM  biblio.record_entry
115           ORDER BY fingerprint, quality desc) AS x
116       WHERE fingerprint IS NOT NULL;
117
118 INSERT INTO metabib.metarecord_source_map (metarecord,source)
119     SELECT  m.id, b.id
120       FROM  biblio.record_entry b
121         JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint);
122
123 ALTER TABLE metabib.metarecord_source_map
124         ADD CONSTRAINT metabib_metarecord_source_map_metarecord_fkey
125                 FOREIGN KEY (metarecord) REFERENCES metabib.metarecord (id) DEFERRABLE INITIALLY DEFERRED;
126
127 */
128
129
130 /* And this too, if it's production
131
132 SELECT reporter.enable_materialized_simple_record_trigger();
133
134 */
135
136 -- COMMIT;
137 -- VACUUM FULL;
138