better docstring
[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 IN (SELECT id FROM backup_usr);
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 SELECT SETVAL('actor.usr_id_seq', (SELECT MAX(id)+1 FROM actor.usr));
85 SELECT SETVAL('actor.card_id_seq', (SELECT MAX(id)+1 FROM actor.card));
86
87 -- Put any scripts that reload bibs/items/etc here.  Example included.
88 /*  
89
90 \i incumbent.sql
91 \i incoming.sql
92
93 */
94 \i IN.sql
95
96 CREATE INDEX metabib_title_field_entry_index_vector_idx ON metabib.title_field_entry USING GIST (index_vector);
97 CREATE INDEX metabib_author_field_entry_index_vector_idx ON metabib.author_field_entry USING GIST (index_vector);
98 CREATE INDEX metabib_subject_field_entry_index_vector_idx ON metabib.subject_field_entry USING GIST (index_vector);
99 CREATE INDEX metabib_keyword_field_entry_index_vector_idx ON metabib.keyword_field_entry USING GIST (index_vector);
100 CREATE INDEX metabib_series_field_entry_index_vector_idx ON metabib.series_field_entry USING GIST (index_vector);
101 CREATE INDEX metabib_full_rec_index_vector_idx ON metabib.full_rec USING GIST (index_vector);
102 CREATE INDEX metabib_full_rec_tag_subfield_idx ON metabib.full_rec (tag,subfield);
103 CREATE INDEX metabib_full_value_idx ON metabib.full_rec (value);
104
105 /*  Run the AFTER committing ...
106
107 ALTER TABLE metabib.metarecord_source_map DROP CONSTRAINT metabib_metarecord_source_map_metarecord_fkey;
108
109 TRUNCATE metabib.metarecord;
110 TRUNCATE metabib.metarecord_source_map;
111
112 INSERT INTO metabib.metarecord (fingerprint,master_record)
113     SELECT  fingerprint,id
114       FROM  (SELECT DISTINCT ON (fingerprint)
115             fingerprint, id, quality
116           FROM  biblio.record_entry
117           ORDER BY fingerprint, quality desc) AS x
118       WHERE fingerprint IS NOT NULL;
119
120 INSERT INTO metabib.metarecord_source_map (metarecord,source)
121     SELECT  m.id, b.id
122       FROM  biblio.record_entry b
123         JOIN metabib.metarecord m ON (m.fingerprint = b.fingerprint);
124
125 ALTER TABLE metabib.metarecord_source_map
126         ADD CONSTRAINT metabib_metarecord_source_map_metarecord_fkey
127                 FOREIGN KEY (metarecord) REFERENCES metabib.metarecord (id) DEFERRABLE INITIALLY DEFERRED;
128
129 */
130
131
132 /* And this too, if it's production
133
134 SELECT reporter.enable_materialized_simple_record_trigger();
135
136 */
137
138 -- COMMIT;
139 -- VACUUM FULL;
140