2 DROP SCHEMA stats CASCADE;
3 DROP SCHEMA config CASCADE;
9 COMMENT ON SCHEMA config IS $$
11 * Copyright (C) 2005 Georgia Public Library Service
12 * Mike Rylander <mrylander@gmail.com>
14 * The config schema holds static configuration data for the
15 * Open-ILS installation.
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
32 CREATE TABLE config.bib_source (
33 id SERIAL PRIMARY KEY,
34 quality INT CHECK ( quality BETWEEN 0 AND 100 ),
35 source TEXT NOT NULL UNIQUE,
36 transcendant BOOL NOT NULL DEFAULT FALSE
38 COMMENT ON TABLE config.bib_source IS $$
40 * Copyright (C) 2005 Georgia Public Library Service
41 * Mike Rylander <mrylander@gmail.com>
43 * Valid sources of MARC records
45 * This is table is used to set up the relative "quality" of each
46 * MARC source, such as OCLC.
50 * This program is free software; you can redistribute it and/or
51 * modify it under the terms of the GNU General Public License
52 * as published by the Free Software Foundation; either version 2
53 * of the License, or (at your option) any later version.
55 * This program is distributed in the hope that it will be useful,
56 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58 * GNU General Public License for more details.
63 INSERT INTO config.bib_source (quality, source) VALUES (90, 'OcLC');
64 INSERT INTO config.bib_source (quality, source) VALUES (10, 'System Local');
65 INSERT INTO config.bib_source (quality, source, transcendant) VALUES (1, 'Project Gutenberg', TRUE);
67 CREATE TABLE config.standing (
68 id SERIAL PRIMARY KEY,
69 value TEXT NOT NULL UNIQUE
71 COMMENT ON TABLE config.standing IS $$
73 * Copyright (C) 2005 Georgia Public Library Service
74 * Mike Rylander <mrylander@gmail.com>
78 * This table contains the values that can be applied to a patron
79 * by a staff member. These values should not be changed, other
80 * that for translation, as the ID column is currently a "magic
81 * number" in the source. :(
85 * This program is free software; you can redistribute it and/or
86 * modify it under the terms of the GNU General Public License
87 * as published by the Free Software Foundation; either version 2
88 * of the License, or (at your option) any later version.
90 * This program is distributed in the hope that it will be useful,
91 * but WITHOUT ANY WARRANTY; without even the implied warranty of
92 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
93 * GNU General Public License for more details.
97 INSERT INTO config.standing (value) VALUES ('Good');
98 INSERT INTO config.standing (value) VALUES ('Barred');
102 CREATE TABLE config.metabib_field (
103 id SERIAL PRIMARY KEY,
104 field_class TEXT NOT NULL CHECK (lower(field_class) IN ('title','author','subject','keyword','series')),
105 name TEXT NOT NULL UNIQUE,
107 weight INT NOT NULL DEFAULT 1,
108 format TEXT NOT NULL DEFAULT 'mods'
110 COMMENT ON TABLE config.metabib_field IS $$
112 * Copyright (C) 2005 Georgia Public Library Service
113 * Mike Rylander <mrylander@gmail.com>
115 * XPath used for WoRMing
117 * This table contains the XPath used to chop up MODS into it's
118 * indexable parts. Each XPath entry is named and assigned to
119 * a "class" of either title, subject, author, keyword or series.
124 * This program is free software; you can redistribute it and/or
125 * modify it under the terms of the GNU General Public License
126 * as published by the Free Software Foundation; either version 2
127 * of the License, or (at your option) any later version.
129 * This program is distributed in the hope that it will be useful,
130 * but WITHOUT ANY WARRANTY; without even the implied warranty of
131 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
132 * GNU General Public License for more details.
137 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'series', 'seriestitle', $$//mods:mods/mods:relatedItem[@type="series"]/mods:titleInfo$$ );
138 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'abbreviated', $$//mods:mods/mods:titleInfo[mods:title and (@type='abreviated')]$$ );
139 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'translated', $$//mods:mods/mods:titleInfo[mods:title and (@type='translated')]$$ );
140 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'uniform', $$//mods:mods/mods:titleInfo[mods:title and (@type='uniform')]$$ );
141 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'title', 'proper', $$//mods:mods/mods:titleInfo[mods:title and not (@type)]$$ );
142 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'corporate', $$//mods:mods/mods:name[@type='corporate']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
143 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'personal', $$//mods:mods/mods:name[@type='personal']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
144 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'conference', $$//mods:mods/mods:name[@type='conference']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ );
145 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'author', 'other', $$//mods:mods/mods:name[@type='personal']/mods:namePart[not(../mods:role)]$$ );
146 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'geographic', $$//mods:mods/mods:subject/mods:geographic$$ );
147 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'name', $$//mods:mods/mods:subject/mods:name$$ );
148 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'temporal', $$//mods:mods/mods:subject/mods:temporal$$ );
149 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'topic', $$//mods:mods/mods:subject/mods:topic$$ );
150 -- INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'subject', 'genre', $$//mods:mods/mods:genre$$ );
151 INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES ( 'keyword', 'keyword', $$//mods:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */
153 CREATE TABLE config.non_cataloged_type (
154 id SERIAL PRIMARY KEY,
155 owning_lib INT NOT NULL, -- REFERENCES actor.org_unit (id),
156 name TEXT NOT NULL UNIQUE,
157 circ_duration INTERVAL NOT NULL DEFAULT '14 days'::INTERVAL,
158 in_house BOOL NOT NULL DEFAULT FALSE
160 COMMENT ON TABLE config.non_cataloged_type IS $$
162 * Copyright (C) 2005 Georgia Public Library Service
163 * Mike Rylander <mrylander@gmail.com>
165 * Types of valid non-cataloged items.
170 * This program is free software; you can redistribute it and/or
171 * modify it under the terms of the GNU General Public License
172 * as published by the Free Software Foundation; either version 2
173 * of the License, or (at your option) any later version.
175 * This program is distributed in the hope that it will be useful,
176 * but WITHOUT ANY WARRANTY; without even the implied warranty of
177 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
178 * GNU General Public License for more details.
183 INSERT INTO config.non_cataloged_type ( owning_lib, name ) VALUES ( 1, 'Paperback Book' );
185 CREATE TABLE config.identification_type (
186 id SERIAL PRIMARY KEY,
187 name TEXT NOT NULL UNIQUE
189 COMMENT ON TABLE config.identification_type IS $$
191 * Copyright (C) 2005 Georgia Public Library Service
192 * Mike Rylander <mrylander@gmail.com>
194 * Types of valid patron identification.
196 * Each patron must display at least one valid form of identification
197 * in order to get a library card. This table lists those forms.
202 * This program is free software; you can redistribute it and/or
203 * modify it under the terms of the GNU General Public License
204 * as published by the Free Software Foundation; either version 2
205 * of the License, or (at your option) any later version.
207 * This program is distributed in the hope that it will be useful,
208 * but WITHOUT ANY WARRANTY; without even the implied warranty of
209 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
210 * GNU General Public License for more details.
215 INSERT INTO config.identification_type ( name ) VALUES ( 'Drivers Licence' );
216 INSERT INTO config.identification_type ( name ) VALUES ( 'Voter Card' );
217 INSERT INTO config.identification_type ( name ) VALUES ( 'Two Utility Bills' );
218 INSERT INTO config.identification_type ( name ) VALUES ( 'State ID' );
219 INSERT INTO config.identification_type ( name ) VALUES ( 'SSN' );
221 CREATE TABLE config.rule_circ_duration (
222 id SERIAL PRIMARY KEY,
223 name TEXT NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
224 extended INTERVAL NOT NULL,
225 normal INTERVAL NOT NULL,
226 shrt INTERVAL NOT NULL,
227 max_renewals INT NOT NULL
229 COMMENT ON TABLE config.rule_circ_duration IS $$
231 * Copyright (C) 2005 Georgia Public Library Service
232 * Mike Rylander <mrylander@gmail.com>
234 * Circulation Duration rules
236 * Each circulation is given a duration based on one of these rules.
241 * This program is free software; you can redistribute it and/or
242 * modify it under the terms of the GNU General Public License
243 * as published by the Free Software Foundation; either version 2
244 * of the License, or (at your option) any later version.
246 * This program is distributed in the hope that it will be useful,
247 * but WITHOUT ANY WARRANTY; without even the implied warranty of
248 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
249 * GNU General Public License for more details.
253 INSERT INTO config.rule_circ_duration VALUES (DEFAULT, '2wk_default', '21 days', '14 days', '7 days', 2);
256 CREATE TABLE config.rule_max_fine (
257 id SERIAL PRIMARY KEY,
258 name TEXT NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
259 amount NUMERIC(6,2) NOT NULL
261 COMMENT ON TABLE config.rule_max_fine IS $$
263 * Copyright (C) 2005 Georgia Public Library Service
264 * Mike Rylander <mrylander@gmail.com>
266 * Circulation Max Fine rules
268 * Each circulation is given a maximum fine based on one of
274 * This program is free software; you can redistribute it and/or
275 * modify it under the terms of the GNU General Public License
276 * as published by the Free Software Foundation; either version 2
277 * of the License, or (at your option) any later version.
279 * This program is distributed in the hope that it will be useful,
280 * but WITHOUT ANY WARRANTY; without even the implied warranty of
281 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
282 * GNU General Public License for more details.
286 INSERT INTO config.rule_max_fine VALUES (DEFAULT, 'books', 50.00);
289 CREATE TABLE config.rule_recuring_fine (
290 id SERIAL PRIMARY KEY,
291 name TEXT NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
292 high NUMERIC(6,2) NOT NULL,
293 normal NUMERIC(6,2) NOT NULL,
294 low NUMERIC(6,2) NOT NULL,
295 recurance_interval INTERVAL NOT NULL DEFAULT '1 day'::INTERVAL
297 COMMENT ON TABLE config.rule_recuring_fine IS $$
299 * Copyright (C) 2005 Georgia Public Library Service
300 * Mike Rylander <mrylander@gmail.com>
302 * Circulation Recuring Fine rules
304 * Each circulation is given a recuring fine amount based on one of
305 * these rules. The recurance_interval should not be any shorter
306 * than the interval between runs of the fine_processor.pl script
307 * (which is run from CRON), or you could miss fines.
312 * This program is free software; you can redistribute it and/or
313 * modify it under the terms of the GNU General Public License
314 * as published by the Free Software Foundation; either version 2
315 * of the License, or (at your option) any later version.
317 * This program is distributed in the hope that it will be useful,
318 * but WITHOUT ANY WARRANTY; without even the implied warranty of
319 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
320 * GNU General Public License for more details.
324 INSERT INTO config.rule_recuring_fine VALUES (1, 'books', 0.50, 0.10, 0.10, '1 day');
327 CREATE TABLE config.rule_age_hold_protect (
328 id SERIAL PRIMARY KEY,
329 name TEXT NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
330 age INTERVAL NOT NULL,
333 COMMENT ON TABLE config.rule_age_hold_protect IS $$
335 * Copyright (C) 2005 Georgia Public Library Service
336 * Mike Rylander <mrylander@gmail.com>
338 * Hold Item Age Protection rules
340 * A hold request can only capture new(ish) items when they are
341 * within a particular proximity of the home_ou of the requesting
342 * user. The proximity ('prox' column) is calculated by counting
343 * the number of tree edges beween the user's home_ou and the owning_lib
344 * of the copy that could fulfill the hold.
349 * This program is free software; you can redistribute it and/or
350 * modify it under the terms of the GNU General Public License
351 * as published by the Free Software Foundation; either version 2
352 * of the License, or (at your option) any later version.
354 * This program is distributed in the hope that it will be useful,
355 * but WITHOUT ANY WARRANTY; without even the implied warranty of
356 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
357 * GNU General Public License for more details.
361 INSERT INTO config.rule_age_hold_protect VALUES (DEFAULT, '3month', '3 mons', 0);
362 INSERT INTO config.rule_age_hold_protect VALUES (DEFAULT, '6month', '6 mons', 2);
365 CREATE TABLE config.copy_status (
366 id SERIAL PRIMARY KEY,
367 name TEXT NOT NULL UNIQUE,
368 holdable BOOL NOT NULL DEFAULT FALSE
370 COMMENT ON TABLE config.copy_status IS $$
372 * Copyright (C) 2005 Georgia Public Library Service
373 * Mike Rylander <mrylander@gmail.com>
377 * The available copy statuses, and whether a copy in that
378 * status is available for hold request capture. 0 (zero) is
379 * the only special number in this set, meaning that the item
380 * is available for imediate checkout, and is counted as available
383 * Statuses with an ID below 100 are not removable, and have special
384 * meaning in the code. Do not change them except to translate the
387 * You may add and remove statuses above 100, and these can be used
388 * to remove items from normal circulation without affecting the rest
389 * of the copy's values or it's location.
393 * This program is free software; you can redistribute it and/or
394 * modify it under the terms of the GNU General Public License
395 * as published by the Free Software Foundation; either version 2
396 * of the License, or (at your option) any later version.
398 * This program is distributed in the hope that it will be useful,
399 * but WITHOUT ANY WARRANTY; without even the implied warranty of
400 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
401 * GNU General Public License for more details.
405 INSERT INTO config.copy_status (id,name,holdable) VALUES (0,'Available','t');
406 INSERT INTO config.copy_status (name,holdable) VALUES ('Checked out','t');
407 INSERT INTO config.copy_status (name) VALUES ('Bindery');
408 INSERT INTO config.copy_status (name) VALUES ('Lost');
409 INSERT INTO config.copy_status (name) VALUES ('Missing');
410 INSERT INTO config.copy_status (name,holdable) VALUES ('In process','t');
411 INSERT INTO config.copy_status (name,holdable) VALUES ('In transit','t');
412 INSERT INTO config.copy_status (name,holdable) VALUES ('Reshelving','t');
413 INSERT INTO config.copy_status (name) VALUES ('On holds shelf');
414 INSERT INTO config.copy_status (name,holdable) VALUES ('On order','t');
415 INSERT INTO config.copy_status (name) VALUES ('ILL');
416 INSERT INTO config.copy_status (name) VALUES ('Cataloging');
417 INSERT INTO config.copy_status (name) VALUES ('Reserves');
418 INSERT INTO config.copy_status (name) VALUES ('Discard/Weed');
420 SELECT SETVAL('config.copy_status_id_seq'::TEXT, 100);
423 CREATE TABLE config.net_access_level (
424 id SERIAL PRIMARY KEY,
425 name TEXT NOT NULL UNIQUE
427 COMMENT ON TABLE config.net_access_level IS $$
429 * Copyright (C) 2005 Georgia Public Library Service
430 * Mike Rylander <mrylander@gmail.com>
432 * Patron Network Access level
434 * This will be used to inform the in-library firewall of how much
435 * internet access the using patron should be allowed.
439 * This program is free software; you can redistribute it and/or
440 * modify it under the terms of the GNU General Public License
441 * as published by the Free Software Foundation; either version 2
442 * of the License, or (at your option) any later version.
444 * This program is distributed in the hope that it will be useful,
445 * but WITHOUT ANY WARRANTY; without even the implied warranty of
446 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
447 * GNU General Public License for more details.
451 INSERT INTO config.net_access_level (name) VALUES ('Restricted');
452 INSERT INTO config.net_access_level (name) VALUES ('Full');
453 INSERT INTO config.net_access_level (name) VALUES ('None');
455 CREATE TABLE config.audience_map (
456 code TEXT PRIMARY KEY,
461 COPY config.audience_map FROM STDIN;
462 Unknown or unspecified The target audience for the item not known or not specified.
463 a Preschool The item is intended for children, approximate ages 0-5 years.
464 b Primary The item is intended for children, approximate ages 6-8 years.
465 c Pre-adolescent The item is intended for young people, approximate ages 9-13 years.
466 d Adolescent The item is intended for young people, approximate ages 14-17 years.
467 e Adult The item is intended for adults.
468 f Specialized The item is aimed at a particular audience and the nature of the presentation makes the item of little interest to another audience.
469 g General The item is of general interest and not aimed at an audience of a particular intellectual level.
470 j Juvenile The item is intended for children and young people, approximate ages 0-15 years.
474 CREATE TABLE config.lit_form_map (
475 code TEXT PRIMARY KEY,
480 COPY config.lit_form_map FROM STDIN;
481 0 Not fiction (not further specified) The item is not a work of fiction and no further identification of the literary form is desired
482 1 Fiction (not further specified) The item is a work of fiction and no further identification of the literary form is desired
487 h Humor, satires, etc. The item is a humorous work, satire or of similar literary form.
488 i Letters The item is a single letter or collection of correspondence.
489 j Short stories The item is a short story or collection of short stories.
490 m Mixed forms The item is a variety of literary forms (e.g., poetry and short stories).
491 p Poetry The item is a poem or collection of poems.
492 s Speeches The item is a speech or collection of speeches.
493 u Unknown The literary form of the item is unknown.
496 CREATE TABLE config.language_map (
497 code TEXT PRIMARY KEY,
501 COPY config.language_map FROM STDIN;
508 afa Afroasiatic (Other)
509 afh Afrihili (Artificial language)
516 alg Algonquian (Other)
518 ang English, Old (ca. 450-1100)
522 arg Aragonese Spanish
526 art Artificial (Other)
530 ath Athapascan (Other)
531 aus Australian languages
538 bai Bamileke languages
567 cai Central American Indian (Other)
571 cau Caucasian (Other)
592 cpe Creoles and Pidgins, English-based (Other)
593 cpf Creoles and Pidgins, French-based (Other)
594 cpp Creoles and Pidgins, Portuguese-based (Other)
597 crp Creoles and Pidgins (Other)
610 dra Dravidian (Other)
612 dum Dutch, Middle (ca. 1050-1350)
621 enm English, Middle (1100-1500)
623 -esk Eskimo languages
635 fiu Finno-Ugrian (Other)
639 frm French, Middle (ca. 1400-1600)
640 fro French, Old (ca. 842-1400)
659 gmh German, Middle High (ca. 1050-1500)
660 goh German, Old High (ca. 750-1050)
665 grc Greek, Ancient (to 1453)
666 gre Greek, Modern (1453- )
672 hat Haitian French Creole
694 ina Interlingua (International Auxiliary Language Association)
697 ine Indo-European (Other)
699 -int Interlingua (International Auxiliary Language Association)
703 iro Iroquoian (Other)
745 -lan Occitan (post-1500)
762 luo Luo (Kenya and Tanzania)
773 map Austronesian (Other)
780 mga Irish, Middle (ca. 1100-1550)
783 mis Miscellaneous languages
784 mkh Mon-Khmer (Other)
795 mul Multiple languages
801 nai North American Indian (Other)
802 nap Neapolitan Italian
805 nbl Ndebele (South Africa)
806 nde Ndebele (Zimbabwe)
812 nic Niger-Kordofanian (Other)
814 nno Norwegian (Nynorsk)
815 nob Norwegian (Bokmål)
826 oci Occitan (post-1500)
833 oto Otomian languages
841 peo Old Persian (ca. 600-400 B.C.)
843 phi Philippine (Other)
849 pra Prakrit languages
850 pro Provençal (to 1500)
863 sag Sango (Ubangi Creole)
865 sai South American Indian (Other)
866 sal Salishan languages
867 sam Samaritan Aramaic
877 sga Irish, Old (to 1100)
884 sit Sino-Tibetan (Other)
906 ssa Nilo-Saharan (Other)
967 wak Wakashan languages
972 wen Sorbian languages
990 CREATE TABLE config.item_form_map (
991 code TEXT PRIMARY KEY,
995 COPY config.item_form_map FROM STDIN;
1001 r Regular print reproduction
1005 CREATE TABLE config.item_type_map (
1006 code TEXT PRIMARY KEY,
1010 COPY config.item_type_map FROM STDIN;
1012 t Manuscript language material
1014 k Two-dimensional nonprojectable graphic
1015 r Three-dimensional artifact or naturally occurring object
1018 e Cartographic material
1019 f Manuscript cartographic material
1021 d Manuscript notated music
1022 i Nonmusical sound recording
1023 j Musical sound recording