(bug #3370) add keyword to MARC field mapping
[koha.git] / installer / data / mysql / kohastructure.sql
index 4950505..5145bda 100644 (file)
@@ -30,6 +30,7 @@ CREATE TABLE `accountlines` (
   `dispute` mediumtext,
   `accounttype` varchar(5) default NULL,
   `amountoutstanding` decimal(28,6) default NULL,
+  `lastincrement` decimal(28,6) default NULL,
   `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   `notify_id` int(11) NOT NULL default 0,
   `notify_level` int(2) NOT NULL default 0,
@@ -50,7 +51,8 @@ CREATE TABLE `accountoffsets` (
   `accountno` smallint(6) NOT NULL default 0,
   `offsetaccount` smallint(6) NOT NULL default 0,
   `offsetamount` decimal(28,6) default NULL,
-  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
+  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+  CONSTRAINT `accountoffsets_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
@@ -122,7 +124,7 @@ CREATE TABLE `aqbookfund` (
 DROP TABLE IF EXISTS `aqbooksellers`;
 CREATE TABLE `aqbooksellers` (
   `id` int(11) NOT NULL auto_increment,
-  `name` mediumtext,
+  `name` mediumtext NOT NULL,
   `address1` mediumtext,
   `address2` mediumtext,
   `address3` mediumtext,
@@ -175,7 +177,7 @@ CREATE TABLE `aqbudget` (
   `startdate` date NOT NULL default 0,
   `enddate` date default NULL,
   `budgetamount` decimal(13,2) default NULL,
-  `aqbudgetid` tinyint(4) NOT NULL auto_increment,
+  `aqbudgetid` int(11) NOT NULL auto_increment,
   `branchcode` varchar(10) default NULL,
   PRIMARY KEY  (`aqbudgetid`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -337,8 +339,10 @@ CREATE TABLE `authorised_values` (
   `category` varchar(10) NOT NULL default '',
   `authorised_value` varchar(80) NOT NULL default '',
   `lib` varchar(80) default NULL,
+  `imageurl` varchar(200) default NULL,
   PRIMARY KEY  (`id`),
-  KEY `name` (`category`)
+  KEY `name` (`category`),
+  KEY `lib` (`lib`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
@@ -385,7 +389,7 @@ CREATE TABLE `biblioitems` (
   `volume` mediumtext,
   `number` mediumtext,
   `itemtype` varchar(10) default NULL,
-  `isbn` varchar(14) default NULL,
+  `isbn` varchar(30) default NULL,
   `issn` varchar(9) default NULL,
   `publicationyear` text,
   `publishercode` varchar(255) default NULL,
@@ -416,7 +420,9 @@ CREATE TABLE `biblioitems` (
   KEY `bibinoidx` (`biblioitemnumber`),
   KEY `bibnoidx` (`biblionumber`),
   KEY `isbn` (`isbn`),
+  KEY `issn` (`issn`),
   KEY `publishercode` (`publishercode`),
+  KEY `issn` (`issn`),
   CONSTRAINT `biblioitems_ibfk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
@@ -476,6 +482,14 @@ CREATE TABLE `borrowers` (
   `contactnote` varchar(255) default NULL,
   `sort1` varchar(80) default NULL,
   `sort2` varchar(80) default NULL,
+  `altcontactfirstname` varchar(255) default NULL,
+  `altcontactsurname` varchar(255) default NULL,
+  `altcontactaddress1` varchar(255) default NULL,
+  `altcontactaddress2` varchar(255) default NULL,
+  `altcontactaddress3` varchar(255) default NULL,
+  `altcontactzipcode` varchar(50) default NULL,
+  `altcontactphone` varchar(50) default NULL,
+  `smsalertnumber` varchar(50) default NULL,
   UNIQUE KEY `cardnumber` (`cardnumber`),
   PRIMARY KEY `borrowernumber` (`borrowernumber`),
   KEY `categorycode` (`categorycode`),
@@ -485,6 +499,53 @@ CREATE TABLE `borrowers` (
   CONSTRAINT `borrowers_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `borrower_attribute_types`
+--
+
+DROP TABLE IF EXISTS `borrower_attribute_types`;
+CREATE TABLE `borrower_attribute_types` (
+  `code` varchar(10) NOT NULL,
+  `description` varchar(255) NOT NULL,
+  `repeatable` tinyint(1) NOT NULL default 0,
+  `unique_id` tinyint(1) NOT NULL default 0,
+  `opac_display` tinyint(1) NOT NULL default 0,
+  `password_allowed` tinyint(1) NOT NULL default 0,
+  `staff_searchable` tinyint(1) NOT NULL default 0,
+  `authorised_value_category` varchar(10) default NULL,
+  PRIMARY KEY  (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `borrower_attributes`
+--
+
+DROP TABLE IF EXISTS `borrower_attributes`;
+CREATE TABLE `borrower_attributes` (
+  `borrowernumber` int(11) NOT NULL,
+  `code` varchar(10) NOT NULL,
+  `attribute` varchar(64) default NULL,
+  `password` varchar(64) default NULL,
+  KEY `borrowernumber` (`borrowernumber`),
+  KEY `code_attribute` (`code`, `attribute`),
+  CONSTRAINT `borrower_attributes_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`)
+    ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `borrower_attributes_ibfk_2` FOREIGN KEY (`code`) REFERENCES `borrower_attribute_types` (`code`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `branch_item_rules` (
+  `branchcode` varchar(10) NOT NULL,
+  `itemtype` varchar(10) NOT NULL,
+  `holdallowed` tinyint(1) default NULL,
+  PRIMARY KEY  (`itemtype`,`branchcode`),
+  KEY `branch_item_rules_ibfk_2` (`branchcode`),
+  CONSTRAINT `branch_item_rules_ibfk_1` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`)
+    ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `branch_item_rules_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `branchcategories`
 --
@@ -589,15 +650,70 @@ CREATE TABLE `categories` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
--- Table structure for table `categorytable`
+-- Table structure for table `borrower_branch_circ_rules`
 --
 
-DROP TABLE IF EXISTS `categorytable`;
-CREATE TABLE `categorytable` (
-  `categorycode` varchar(5) NOT NULL default '',
-  `description` text,
-  `itemtypecodes` text,
-  PRIMARY KEY  (`categorycode`)
+DROP TABLE IF EXISTS `branch_borrower_circ_rules`;
+CREATE TABLE `branch_borrower_circ_rules` (
+  `branchcode` VARCHAR(10) NOT NULL,
+  `categorycode` VARCHAR(10) NOT NULL,
+  `maxissueqty` int(4) default NULL,
+  PRIMARY KEY (`categorycode`, `branchcode`),
+  CONSTRAINT `branch_borrower_circ_rules_ibfk_1` FOREIGN KEY (`categorycode`) REFERENCES `categories` (`categorycode`)
+    ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `branch_borrower_circ_rules_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `default_borrower_circ_rules`
+--
+
+DROP TABLE IF EXISTS `default_borrower_circ_rules`;
+CREATE TABLE `default_borrower_circ_rules` (
+  `categorycode` VARCHAR(10) NOT NULL,
+  `maxissueqty` int(4) default NULL,
+  PRIMARY KEY (`categorycode`),
+  CONSTRAINT `borrower_borrower_circ_rules_ibfk_1` FOREIGN KEY (`categorycode`) REFERENCES `categories` (`categorycode`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `default_branch_circ_rules`
+--
+
+DROP TABLE IF EXISTS `default_branch_circ_rules`;
+CREATE TABLE `default_branch_circ_rules` (
+  `branchcode` VARCHAR(10) NOT NULL,
+  `maxissueqty` int(4) default NULL,
+  `holdallowed` tinyint(1) default NULL,
+  PRIMARY KEY (`branchcode`),
+  CONSTRAINT `default_branch_circ_rules_ibfk_1` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `default_branch_item_rules`
+--
+
+CREATE TABLE `default_branch_item_rules` (
+  `itemtype` varchar(10) NOT NULL,
+  `holdallowed` tinyint(1) default NULL,
+  PRIMARY KEY  (`itemtype`),
+  CONSTRAINT `default_branch_item_rules_ibfk_1` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `default_circ_rules`
+--
+
+DROP TABLE IF EXISTS `default_circ_rules`;
+CREATE TABLE `default_circ_rules` (
+    `singleton` enum('singleton') NOT NULL default 'singleton',
+    `maxissueqty` int(4) default NULL,
+    `holdallowed` int(1) default NULL,
+    PRIMARY KEY (`singleton`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
@@ -648,6 +764,8 @@ CREATE TABLE `class_sources` (
 DROP TABLE IF EXISTS `currency`;
 CREATE TABLE `currency` (
   `currency` varchar(10) NOT NULL default '',
+  `symbol` varchar(5) default NULL,
+  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   `rate` float(7,5) default NULL,
   PRIMARY KEY  (`currency`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -685,7 +803,7 @@ CREATE TABLE `deletedbiblioitems` (
   `volume` mediumtext,
   `number` mediumtext,
   `itemtype` varchar(10) default NULL,
-  `isbn` varchar(14) default NULL,
+  `isbn` varchar(30) default NULL,
   `issn` varchar(9) default NULL,
   `publicationyear` text,
   `publishercode` varchar(255) default NULL,
@@ -746,6 +864,7 @@ CREATE TABLE `deletedborrowers` (
   `phonepro` text,
   `B_streetnumber` varchar(10) default NULL,
   `B_streettype` varchar(50) default NULL,
+  `smsalertnumber` varchar(50) default NULL,
   `B_address` varchar(100) default NULL,
   `B_city` mediumtext,
   `B_zipcode` varchar(25) default NULL,
@@ -753,7 +872,7 @@ CREATE TABLE `deletedborrowers` (
   `B_phone` mediumtext,
   `dateofbirth` date default NULL,
   `branchcode` varchar(10) NOT NULL default '',
-  `categorycode` varchar(2) default NULL,
+  `categorycode` varchar(10) default NULL,
   `dateenrolled` date default NULL,
   `dateexpiry` date default NULL,
   `gonenoaddress` tinyint(1) default NULL,
@@ -775,6 +894,14 @@ CREATE TABLE `deletedborrowers` (
   `contactnote` varchar(255) default NULL,
   `sort1` varchar(80) default NULL,
   `sort2` varchar(80) default NULL,
+  `altcontactfirstname` varchar(255) default NULL,
+  `altcontactsurname` varchar(255) default NULL,
+  `altcontactaddress1` varchar(255) default NULL,
+  `altcontactaddress2` varchar(255) default NULL,
+  `altcontactaddress3` varchar(255) default NULL,
+  `altcontactzipcode` varchar(50) default NULL,
+  `altcontactphone` varchar(50) default NULL,
+  `smsalertnumber` varchar(50) default NULL,
   KEY `borrowernumber` (`borrowernumber`),
   KEY `cardnumber` (`cardnumber`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -790,7 +917,7 @@ CREATE TABLE `deleteditems` (
   `biblioitemnumber` int(11) NOT NULL default 0,
   `barcode` varchar(20) default NULL,
   `dateaccessioned` date default NULL,
-  `booksellerid` varchar(10) default NULL,
+  `booksellerid` mediumtext default NULL,
   `homebranch` varchar(10) default NULL,
   `price` decimal(8,2) default NULL,
   `replacementprice` decimal(8,2) default NULL,
@@ -798,10 +925,10 @@ CREATE TABLE `deleteditems` (
   `datelastborrowed` date default NULL,
   `datelastseen` date default NULL,
   `stack` tinyint(1) default NULL,
-  `notforloan` tinyint(1) default NULL,
-  `damaged` tinyint(1) default NULL,
-  `itemlost` tinyint(1) default NULL,
-  `wthdrawn` tinyint(1) default NULL,
+  `notforloan` tinyint(1) NOT NULL default 0,
+  `damaged` tinyint(1) NOT NULL default 0,
+  `itemlost` tinyint(1) NOT NULL default 0,
+  `wthdrawn` tinyint(1) NOT NULL default 0,
   `itemcallnumber` varchar(30) default NULL,
   `issues` smallint(6) default NULL,
   `renewals` smallint(6) default NULL,
@@ -819,6 +946,9 @@ CREATE TABLE `deleteditems` (
   `materials` varchar(10) default NULL,
   `uri` varchar(255) default NULL,
   `itype` varchar(10) default NULL,
+  `more_subfields_xml` longtext default NULL,
+  `enumchron` varchar(80) default NULL,
+  `copynumber` varchar(32) default NULL,
   `marc` longblob,
   PRIMARY KEY  (`itemnumber`),
   KEY `delitembarcodeidx` (`barcode`),
@@ -839,6 +969,29 @@ CREATE TABLE `ethnicity` (
   PRIMARY KEY  (`code`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `hold_fill_targets`
+--
+
+DROP TABLE IF EXISTS `hold_fill_targets`;
+CREATE TABLE hold_fill_targets (
+  `borrowernumber` int(11) NOT NULL,
+  `biblionumber` int(11) NOT NULL,
+  `itemnumber` int(11) NOT NULL,
+  `source_branchcode`  varchar(10) default NULL,
+  `item_level_request` tinyint(4) NOT NULL default 0,
+  PRIMARY KEY `itemnumber` (`itemnumber`),
+  KEY `bib_branch` (`biblionumber`, `source_branchcode`),
+  CONSTRAINT `hold_fill_targets_ibfk_1` FOREIGN KEY (`borrowernumber`) 
+    REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `hold_fill_targets_ibfk_2` FOREIGN KEY (`biblionumber`) 
+    REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `hold_fill_targets_ibfk_3` FOREIGN KEY (`itemnumber`) 
+    REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `hold_fill_targets_ibfk_4` FOREIGN KEY (`source_branchcode`) 
+    REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `import_batches`
 --
@@ -846,12 +999,15 @@ CREATE TABLE `ethnicity` (
 DROP TABLE IF EXISTS `import_batches`;
 CREATE TABLE `import_batches` (
   `import_batch_id` int(11) NOT NULL auto_increment,
+  `matcher_id` int(11) default NULL,
   `template_id` int(11) default NULL,
   `branchcode` varchar(10) default NULL,
   `num_biblios` int(11) NOT NULL default 0,
   `num_items` int(11) NOT NULL default 0,
   `upload_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
-  `overlay_action` enum('replace', 'create_new', 'use_template') NOT NULL default 'create_new',
+  `overlay_action` enum('replace', 'create_new', 'use_template', 'ignore') NOT NULL default 'create_new',
+  `nomatch_action` enum('create_new', 'ignore') NOT NULL default 'create_new',
+  `item_action` enum('always_add', 'add_only_for_matches', 'add_only_for_new', 'ignore') NOT NULL default 'always_add',
   `import_status` enum('staging', 'staged', 'importing', 'imported', 'reverting', 'reverted', 'cleaned') NOT NULL default 'staging',
   `batch_type` enum('batch', 'z3950') NOT NULL default 'batch',
   `file_name` varchar(100),
@@ -877,7 +1033,7 @@ CREATE TABLE `import_records` (
   `marcxml_old` longtext NOT NULL,
   `record_type` enum('biblio', 'auth', 'holdings') NOT NULL default 'biblio',
   `overlay_status` enum('no_match', 'auto_match', 'manual_match', 'match_applied') NOT NULL default 'no_match',
-  `status` enum('error', 'staged', 'imported', 'reverted', 'items_reverted') NOT NULL default 'staged',
+  `status` enum('error', 'staged', 'imported', 'reverted', 'items_reverted', 'ignored') NOT NULL default 'staged',
   `import_error` mediumtext,
   `encoding` varchar(40) NOT NULL default '',
   `z3950random` varchar(40) default NULL,
@@ -913,7 +1069,7 @@ CREATE TABLE `import_biblios` (
   `original_source` varchar(25) default NULL,
   `title` varchar(128) default NULL,
   `author` varchar(80) default NULL,
-  `isbn` varchar(14) default NULL,
+  `isbn` varchar(30) default NULL,
   `issn` varchar(9) default NULL,
   `has_items` tinyint(1) NOT NULL default 0,
   CONSTRAINT `import_biblios_ibfk_1` FOREIGN KEY (`import_record_id`) 
@@ -933,7 +1089,7 @@ CREATE TABLE `import_items` (
   `import_record_id` int(11) NOT NULL,
   `itemnumber` int(11) default NULL,
   `branchcode` varchar(10) default NULL,
-  `status` enum('error', 'staged', 'imported', 'reverted') NOT NULL default 'staged',
+  `status` enum('error', 'staged', 'imported', 'reverted', 'ignored') NOT NULL default 'staged',
   `marcxml` longtext NOT NULL,
   `import_error` mediumtext,
   PRIMARY KEY (`import_items_id`),
@@ -979,12 +1135,15 @@ CREATE TABLE `issuingrules` (
   `rentaldiscount` decimal(28,6) default NULL,
   `reservecharge` decimal(28,6) default NULL,
   `fine` decimal(28,6) default NULL,
+  `finedays` int(11) default NULL,
   `firstremind` int(11) default NULL,
   `chargeperiod` int(11) default NULL,
   `accountsent` int(11) default NULL,
   `chargename` varchar(100) default NULL,
   `maxissueqty` int(4) default NULL,
   `issuelength` int(4) default NULL,
+  `renewalsallowed` smallint(6) NOT NULL default "0",
+  `reservesallowed` smallint(6) NOT NULL default "0",
   `branchcode` varchar(10) NOT NULL default '',
   PRIMARY KEY  (`branchcode`,`categorycode`,`itemtype`),
   KEY `categorycode` (`categorycode`),
@@ -1002,7 +1161,7 @@ CREATE TABLE `items` (
   `biblioitemnumber` int(11) NOT NULL default 0,
   `barcode` varchar(20) default NULL,
   `dateaccessioned` date default NULL,
-  `booksellerid` varchar(10) default NULL,
+  `booksellerid` mediumtext default NULL,
   `homebranch` varchar(10) default NULL,
   `price` decimal(8,2) default NULL,
   `replacementprice` decimal(8,2) default NULL,
@@ -1010,10 +1169,10 @@ CREATE TABLE `items` (
   `datelastborrowed` date default NULL,
   `datelastseen` date default NULL,
   `stack` tinyint(1) default NULL,
-  `notforloan` tinyint(1) default NULL,
-  `damaged` tinyint(1) default NULL,
-  `itemlost` tinyint(1) default NULL,
-  `wthdrawn` tinyint(1) default NULL,
+  `notforloan` tinyint(1) NOT NULL default 0,
+  `damaged` tinyint(1) NOT NULL default 0,
+  `itemlost` tinyint(1) NOT NULL default 0,
+  `wthdrawn` tinyint(1) NOT NULL default 0,
   `itemcallnumber` varchar(30) default NULL,
   `issues` smallint(6) default NULL,
   `renewals` smallint(6) default NULL,
@@ -1031,6 +1190,9 @@ CREATE TABLE `items` (
   `materials` varchar(10) default NULL,
   `uri` varchar(255) default NULL,
   `itype` varchar(10) default NULL,
+  `more_subfields_xml` longtext default NULL,
+  `enumchron` varchar(80) default NULL,
+  `copynumber` varchar(32) default NULL,
   PRIMARY KEY  (`itemnumber`),
   UNIQUE KEY `itembarcodeidx` (`barcode`),
   KEY `itembinoidx` (`biblioitemnumber`),
@@ -1050,7 +1212,6 @@ DROP TABLE IF EXISTS `itemtypes`;
 CREATE TABLE `itemtypes` (
   `itemtype` varchar(10) NOT NULL default '',
   `description` mediumtext,
-  `renewalsallowed` smallint(6) default NULL,
   `rentalcharge` double(16,4) default NULL,
   `notforloan` smallint(6) default NULL,
   `imageurl` varchar(200) default NULL,
@@ -1066,7 +1227,7 @@ CREATE TABLE `itemtypes` (
 DROP TABLE IF EXISTS `labels`;
 CREATE TABLE `labels` (
   `labelid` int(11) NOT NULL auto_increment,
-  `batch_id` varchar(10) NOT NULL default 1,
+  `batch_id` int(10) NOT NULL default 1,
   `itemnumber` varchar(100) NOT NULL default '',
   `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   PRIMARY KEY  (`labelid`)
@@ -1085,7 +1246,7 @@ CREATE TABLE `labels_conf` (
   `itemtype` int(1) default '0',
   `barcode` int(1) default '0',
   `dewey` int(1) default '0',
-  `class` int(1) default NULL,
+  `classification` int(1) default NULL,
   `subclass` int(1) default '0',
   `itemcallnumber` int(1) default '0',
   `author` int(1) default '0',
@@ -1093,6 +1254,7 @@ CREATE TABLE `labels_conf` (
   `isbn` int(1) default '0',
   `startlabel` int(2) NOT NULL default '1',
   `printingtype` char(32) default 'BAR',
+  `formatstring` mediumtext default NULL,
   `layoutname` char(20) NOT NULL default 'TEST',
   `guidebox` int(1) default '0',
   `active` tinyint(1) default '1',
@@ -1103,6 +1265,18 @@ CREATE TABLE `labels_conf` (
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `labels_profile`
+--
+
+DROP TABLE IF EXISTS `labels_profile`;
+CREATE TABLE `labels_profile` (
+  `tmpl_id` int(4) NOT NULL,
+  `prof_id` int(4) NOT NULL,
+  UNIQUE KEY `tmpl_id` (`tmpl_id`),
+  UNIQUE KEY `prof_id` (`prof_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `labels_templates`
 --
@@ -1125,6 +1299,7 @@ CREATE TABLE `labels_templates` (
   `active` int(1) default NULL,
   `units` char(20)  default 'PX',
   `fontsize` int(4) NOT NULL default '3',
+  `font` char(10) NOT NULL default 'TR',
   PRIMARY KEY  (`tmpl_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
@@ -1149,7 +1324,7 @@ CREATE TABLE `letter` (
 DROP TABLE IF EXISTS `marc_subfield_structure`;
 CREATE TABLE `marc_subfield_structure` (
   `tagfield` varchar(3) NOT NULL default '',
-  `tagsubfield` varchar(1) NOT NULL default '',
+  `tagsubfield` varchar(1) NOT NULL default '' COLLATE utf8_bin,
   `liblibrarian` varchar(255) NOT NULL default '',
   `libopac` varchar(255) NOT NULL default '',
   `repeatable` tinyint(4) NOT NULL default 0,
@@ -1188,15 +1363,96 @@ CREATE TABLE `marc_tag_structure` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
--- Table structure for table `mediatypetable`
+-- Table structure for table `marc_matchers`
 --
 
-DROP TABLE IF EXISTS `mediatypetable`;
-CREATE TABLE `mediatypetable` (
-  `mediatypecode` varchar(5) NOT NULL default '',
-  `description` text,
-  `itemtypecodes` text,
-  PRIMARY KEY  (`mediatypecode`)
+DROP TABLE IF EXISTS `marc_matchers`;
+CREATE TABLE `marc_matchers` (
+  `matcher_id` int(11) NOT NULL auto_increment,
+  `code` varchar(10) NOT NULL default '',
+  `description` varchar(255) NOT NULL default '',
+  `record_type` varchar(10) NOT NULL default 'biblio',
+  `threshold` int(11) NOT NULL default 0,
+  PRIMARY KEY (`matcher_id`),
+  KEY `code` (`code`),
+  KEY `record_type` (`record_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `matchpoints`
+--
+DROP TABLE IF EXISTS `matchpoints`;
+CREATE TABLE `matchpoints` (
+  `matcher_id` int(11) NOT NULL,
+  `matchpoint_id` int(11) NOT NULL auto_increment,
+  `search_index` varchar(30) NOT NULL default '',
+  `score` int(11) NOT NULL default 0,
+  PRIMARY KEY (`matchpoint_id`),
+  CONSTRAINT `matchpoints_ifbk_1` FOREIGN KEY (`matcher_id`)
+  REFERENCES `marc_matchers` (`matcher_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+--
+-- Table structure for table `matchpoint_components`
+--
+DROP TABLE IF EXISTS `matchpoint_components`;
+CREATE TABLE `matchpoint_components` (
+  `matchpoint_id` int(11) NOT NULL,
+  `matchpoint_component_id` int(11) NOT NULL auto_increment,
+  sequence int(11) NOT NULL default 0,
+  tag varchar(3) NOT NULL default '',
+  subfields varchar(40) NOT NULL default '',
+  offset int(4) NOT NULL default 0,
+  length int(4) NOT NULL default 0,
+  PRIMARY KEY (`matchpoint_component_id`),
+  KEY `by_sequence` (`matchpoint_id`, `sequence`),
+  CONSTRAINT `matchpoint_components_ifbk_1` FOREIGN KEY (`matchpoint_id`)
+  REFERENCES `matchpoints` (`matchpoint_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `matcher_component_norms`
+--
+DROP TABLE IF EXISTS `matchpoint_component_norms`;
+CREATE TABLE `matchpoint_component_norms` (
+  `matchpoint_component_id` int(11) NOT NULL,
+  `sequence`  int(11) NOT NULL default 0,
+  `norm_routine` varchar(50) NOT NULL default '',
+  KEY `matchpoint_component_norms` (`matchpoint_component_id`, `sequence`),
+  CONSTRAINT `matchpoint_component_norms_ifbk_1` FOREIGN KEY (`matchpoint_component_id`)
+  REFERENCES `matchpoint_components` (`matchpoint_component_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `matcher_matchpoints`
+--
+DROP TABLE IF EXISTS `matcher_matchpoints`;
+CREATE TABLE `matcher_matchpoints` (
+  `matcher_id` int(11) NOT NULL,
+  `matchpoint_id` int(11) NOT NULL,
+  CONSTRAINT `matcher_matchpoints_ifbk_1` FOREIGN KEY (`matcher_id`)
+  REFERENCES `marc_matchers` (`matcher_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `matcher_matchpoints_ifbk_2` FOREIGN KEY (`matchpoint_id`)
+  REFERENCES `matchpoints` (`matchpoint_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `matchchecks`
+--
+DROP TABLE IF EXISTS `matchchecks`;
+CREATE TABLE `matchchecks` (
+  `matcher_id` int(11) NOT NULL,
+  `matchcheck_id` int(11) NOT NULL auto_increment,
+  `source_matchpoint_id` int(11) NOT NULL,
+  `target_matchpoint_id` int(11) NOT NULL,
+  PRIMARY KEY (`matchcheck_id`),
+  CONSTRAINT `matcher_matchchecks_ifbk_1` FOREIGN KEY (`matcher_id`)
+  REFERENCES `marc_matchers` (`matcher_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `matcher_matchchecks_ifbk_2` FOREIGN KEY (`source_matchpoint_id`)
+  REFERENCES `matchpoints` (`matchpoint_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `matcher_matchchecks_ifbk_3` FOREIGN KEY (`target_matchpoint_id`)
+  REFERENCES `matchpoints` (`matchpoint_id`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 --
@@ -1217,6 +1473,8 @@ CREATE TABLE `notifys` (
 --
 -- Table structure for table `nozebra`
 --
+
+DROP TABLE IF EXISTS `nozebra`;
 CREATE TABLE `nozebra` (
                 `server` varchar(20)     NOT NULL,
                 `indexname` varchar(40)  NOT NULL,
@@ -1226,6 +1484,63 @@ CREATE TABLE `nozebra` (
                 KEY `value` (`server`,`value`))
                 ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `old_issues`
+--
+
+DROP TABLE IF EXISTS `old_issues`;
+CREATE TABLE `old_issues` (
+  `borrowernumber` int(11) default NULL,
+  `itemnumber` int(11) default NULL,
+  `date_due` date default NULL,
+  `branchcode` varchar(10) default NULL,
+  `issuingbranch` varchar(18) default NULL,
+  `returndate` date default NULL,
+  `lastreneweddate` date default NULL,
+  `return` varchar(4) default NULL,
+  `renewals` tinyint(4) default NULL,
+  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+  `issuedate` date default NULL,
+  KEY `old_issuesborridx` (`borrowernumber`),
+  KEY `old_issuesitemidx` (`itemnumber`),
+  KEY `old_bordate` (`borrowernumber`,`timestamp`),
+  CONSTRAINT `old_issues_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) 
+    ON DELETE SET NULL ON UPDATE SET NULL,
+  CONSTRAINT `old_issues_ibfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) 
+    ON DELETE SET NULL ON UPDATE SET NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `old_reserves`
+--
+DROP TABLE IF EXISTS `old_reserves`;
+CREATE TABLE `old_reserves` (
+  `borrowernumber` int(11) default NULL,
+  `reservedate` date default NULL,
+  `biblionumber` int(11) default NULL,
+  `constrainttype` varchar(1) default NULL,
+  `branchcode` varchar(10) default NULL,
+  `notificationdate` date default NULL,
+  `reminderdate` date default NULL,
+  `cancellationdate` date default NULL,
+  `reservenotes` mediumtext,
+  `priority` smallint(6) default NULL,
+  `found` varchar(1) default NULL,
+  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+  `itemnumber` int(11) default NULL,
+  `waitingdate` date default NULL,
+  KEY `old_reserves_borrowernumber` (`borrowernumber`),
+  KEY `old_reserves_biblionumber` (`biblionumber`),
+  KEY `old_reserves_itemnumber` (`itemnumber`),
+  KEY `old_reserves_branchcode` (`branchcode`),
+  CONSTRAINT `old_reserves_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) 
+    ON DELETE SET NULL ON UPDATE SET NULL,
+  CONSTRAINT `old_reserves_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) 
+    ON DELETE SET NULL ON UPDATE SET NULL,
+  CONSTRAINT `old_reserves_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) 
+    ON DELETE SET NULL ON UPDATE SET NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `opac_news`
 --
@@ -1235,7 +1550,7 @@ CREATE TABLE `opac_news` (
   `idnew` int(10) unsigned NOT NULL auto_increment,
   `title` varchar(250) NOT NULL default '',
   `new` text NOT NULL,
-  `lang` varchar(4) NOT NULL default '',
+  `lang` varchar(25) NOT NULL default '',
   `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
   `expirationdate` date default NULL,
   `number` int(11) default NULL,
@@ -1249,7 +1564,7 @@ CREATE TABLE `opac_news` (
 DROP TABLE IF EXISTS `overduerules`;
 CREATE TABLE `overduerules` (
   `branchcode` varchar(10) NOT NULL default '',
-  `categorycode` varchar(2) NOT NULL default '',
+  `categorycode` varchar(10) NOT NULL default '',
   `delay1` int(4) default 0,
   `letter1` varchar(20) default NULL,
   `debarred1` varchar(1) default 0,
@@ -1262,6 +1577,34 @@ CREATE TABLE `overduerules` (
   PRIMARY KEY  (`branchcode`,`categorycode`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `patroncards`
+--
+
+DROP TABLE IF EXISTS `patroncards`;
+CREATE TABLE `patroncards` (
+  `cardid` int(11) NOT NULL auto_increment,
+  `batch_id` varchar(10) NOT NULL default '1',
+  `borrowernumber` int(11) NOT NULL,
+  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+   PRIMARY KEY  (`cardid`),
+   KEY `patroncards_ibfk_1` (`borrowernumber`),
+   CONSTRAINT `patroncards_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `patronimage`
+--
+
+DROP TABLE IF EXISTS `patronimage`;
+CREATE TABLE `patronimage` (
+  `cardnumber` varchar(16) NOT NULL,
+  `mimetype` varchar(15) NOT NULL,
+  `imagefile` mediumblob NOT NULL,
+  PRIMARY KEY  (`cardnumber`),
+  CONSTRAINT `patronimage_fk1` FOREIGN KEY (`cardnumber`) REFERENCES `borrowers` (`cardnumber`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `printers`
 --
@@ -1274,6 +1617,26 @@ CREATE TABLE `printers` (
   PRIMARY KEY  (`printername`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `printers_profile`
+--
+
+DROP TABLE IF EXISTS `printers_profile`;
+CREATE TABLE `printers_profile` (
+  `prof_id` int(4) NOT NULL auto_increment,
+  `printername` varchar(40) NOT NULL,
+  `tmpl_id` int(4) NOT NULL,
+  `paper_bin` varchar(20) NOT NULL,
+  `offset_horz` float default NULL,
+  `offset_vert` float default NULL,
+  `creep_horz` float default NULL,
+  `creep_vert` float default NULL,
+  `unit` char(20) NOT NULL default 'POINT',
+  PRIMARY KEY  (`prof_id`),
+  UNIQUE KEY `printername` (`printername`,`tmpl_id`,`paper_bin`),
+  CONSTRAINT `printers_profile_pnfk_1` FOREIGN KEY (`tmpl_id`) REFERENCES `labels_templates` (`tmpl_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `repeatable_holidays`
 --
@@ -1423,7 +1786,7 @@ CREATE TABLE `serial` (
   `planneddate` date default NULL,
   `notes` text,
   `publisheddate` date default NULL,
-  `itemnumber` text,
+  `itemnumber` text default NULL,
   `claimdate` date default NULL,
   `routingnotes` text,
   PRIMARY KEY  (`serialid`)
@@ -1482,22 +1845,10 @@ CREATE TABLE `statistics` (
 --
 
 DROP TABLE IF EXISTS `stopwords`;
-CREATE TABLE `stopwords` (
+  CREATE TABLE `stopwords` (
   `word` varchar(255) default NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
---
--- Table structure for table `subcategorytable`
---
-
-DROP TABLE IF EXISTS `subcategorytable`;
-CREATE TABLE `subcategorytable` (
-  `subcategorycode` varchar(5) NOT NULL default '',
-  `description` text,
-  `itemtypecodes` text,
-  PRIMARY KEY  (`subcategorycode`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
 --
 -- Table structure for table `subscription`
 --
@@ -1511,9 +1862,9 @@ CREATE TABLE `subscription` (
   `aqbooksellerid` int(11) default 0,
   `cost` int(11) default 0,
   `aqbudgetid` int(11) default 0,
-  `weeklength` tinyint(4) default 0,
-  `monthlength` tinyint(4) default 0,
-  `numberlength` tinyint(4) default 0,
+  `weeklength` int(11) default 0,
+  `monthlength` int(11) default 0,
+  `numberlength` int(11) default 0,
   `periodicity` tinyint(4) default 0,
   `dow` varchar(100) default '',
   `numberingmethod` varchar(100) default '',
@@ -1546,9 +1897,14 @@ CREATE TABLE `subscription` (
   `distributedto` text,
   `internalnotes` longtext,
   `callnumber` text,
+  `location` varchar(80) NULL default '',
   `branchcode` varchar(10) NOT NULL default '',
   `hemisphere` tinyint(3) default 0,
   `lastbranch` varchar(10),
+  `serialsadditems` tinyint(1) NOT NULL default '0',
+  `staffdisplaycount` VARCHAR(10) NULL,
+  `opacdisplaycount` VARCHAR(10) NULL,
+  `graceperiod` int(11) NOT NULL default '0',
   PRIMARY KEY  (`subscriptionid`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
@@ -1602,7 +1958,7 @@ CREATE TABLE `suggestions` (
   `volumedesc` varchar(255) default NULL,
   `publicationyear` smallint(6) default 0,
   `place` varchar(255) default NULL,
-  `isbn` varchar(10) default NULL,
+  `isbn` varchar(30) default NULL,
   `mailoverseeing` smallint(1) default 0,
   `biblionumber` int(11) default NULL,
   `reason` text,
@@ -1636,6 +1992,61 @@ CREATE TABLE `tags` (
   PRIMARY KEY  (`entry`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table structure for table `tags_all`
+--
+
+DROP TABLE IF EXISTS `tags_all`;
+CREATE TABLE `tags_all` (
+  `tag_id`         int(11) NOT NULL auto_increment,
+  `borrowernumber` int(11) NOT NULL,
+  `biblionumber`   int(11) NOT NULL,
+  `term`      varchar(255) NOT NULL,
+  `language`       int(4) default NULL,
+  `date_created` datetime  NOT NULL,
+  PRIMARY KEY  (`tag_id`),
+  KEY `tags_borrowers_fk_1` (`borrowernumber`),
+  KEY `tags_biblionumber_fk_1` (`biblionumber`),
+  CONSTRAINT `tags_borrowers_fk_1` FOREIGN KEY (`borrowernumber`)
+        REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `tags_biblionumber_fk_1` FOREIGN KEY (`biblionumber`)
+        REFERENCES `biblio`     (`biblionumber`)  ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `tags_approval`
+--
+
+DROP TABLE IF EXISTS `tags_approval`;
+CREATE TABLE `tags_approval` (
+  `term`   varchar(255) NOT NULL,
+  `approved`     int(1) NOT NULL default '0',
+  `date_approved` datetime       default NULL,
+  `approved_by` int(11)          default NULL,
+  `weight_total` int(9) NOT NULL default '1',
+  PRIMARY KEY  (`term`),
+  KEY `tags_approval_borrowers_fk_1` (`approved_by`),
+  CONSTRAINT `tags_approval_borrowers_fk_1` FOREIGN KEY (`approved_by`)
+        REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `tags_index`
+--
+
+DROP TABLE IF EXISTS `tags_index`;
+CREATE TABLE `tags_index` (
+  `term`    varchar(255) NOT NULL,
+  `biblionumber` int(11) NOT NULL,
+  `weight`        int(9) NOT NULL default '1',
+  PRIMARY KEY  (`term`,`biblionumber`),
+  KEY `tags_index_biblionumber_fk_1` (`biblionumber`),
+  CONSTRAINT `tags_index_term_fk_1` FOREIGN KEY (`term`)
+        REFERENCES `tags_approval` (`term`)  ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `tags_index_biblionumber_fk_1` FOREIGN KEY (`biblionumber`)
+        REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 --
 -- Table structure for table `userflags`
 --
@@ -1659,6 +2070,8 @@ CREATE TABLE `virtualshelves` (
   `shelfname` varchar(255) default NULL,
   `owner` varchar(80) default NULL,
   `category` varchar(1) default NULL,
+  `sortfield` varchar(16) default NULL,
+  `lastmodified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   PRIMARY KEY  (`shelfnumber`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
@@ -1671,7 +2084,7 @@ CREATE TABLE `virtualshelfcontents` (
   `shelfnumber` int(11) NOT NULL default 0,
   `biblionumber` int(11) NOT NULL default 0,
   `flags` int(11) default NULL,
-  `dateadded` timestamp NULL default NULL,
+  `dateadded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   KEY `shelfnumber` (`shelfnumber`),
   KEY `biblionumber` (`biblionumber`),
   CONSTRAINT `virtualshelfcontents_ibfk_1` FOREIGN KEY (`shelfnumber`) REFERENCES `virtualshelves` (`shelfnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
@@ -1697,6 +2110,7 @@ CREATE TABLE `z3950servers` (
   `icon` text,
   `position` enum('primary','secondary','') NOT NULL default 'primary',
   `type` enum('zed','opensearch') NOT NULL default 'zed',
+  `encoding` text default NULL,
   `description` text NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -1705,16 +2119,272 @@ CREATE TABLE `z3950servers` (
 -- Table structure for table `zebraqueue`
 --
 
+DROP TABLE IF EXISTS `zebraqueue`;
 CREATE TABLE `zebraqueue` (
   `id` int(11) NOT NULL auto_increment,
-  `biblio_auth_number` int(11) NOT NULL default '0',
+  `biblio_auth_number` bigint(20) unsigned NOT NULL default '0',
   `operation` char(20) NOT NULL default '',
   `server` char(20) NOT NULL default '',
   `done` int(11) NOT NULL default '0',
   `time` timestamp NOT NULL default CURRENT_TIMESTAMP,
+  PRIMARY KEY  (`id`),
+  KEY `zebraqueue_lookup` (`server`, `biblio_auth_number`, `operation`, `done`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `services_throttle`;
+CREATE TABLE `services_throttle` (
+  `service_type` varchar(10) NOT NULL default '',
+  `service_count` varchar(45) default NULL,
+  PRIMARY KEY  (`service_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- http://www.w3.org/International/articles/language-tags/
+
+-- RFC4646
+DROP TABLE IF EXISTS language_subtag_registry;
+CREATE TABLE language_subtag_registry (
+        subtag varchar(25),
+        type varchar(25), -- language-script-region-variant-extension-privateuse
+        description varchar(25), -- only one of the possible descriptions for ease of reference, see language_descriptions for the complete list
+        added date,
+        KEY `subtag` (`subtag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- TODO: add suppress_scripts
+-- this maps three letter codes defined in iso639.2 back to their
+-- two letter equivilents in rfc4646 (LOC maintains iso639+)
+DROP TABLE IF EXISTS language_rfc4646_to_iso639;
+CREATE TABLE language_rfc4646_to_iso639 (
+        rfc4646_subtag varchar(25),
+        iso639_2_code varchar(25),
+        KEY `rfc4646_subtag` (`rfc4646_subtag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS language_descriptions;
+CREATE TABLE language_descriptions (
+        subtag varchar(25),
+        type varchar(25),
+        lang varchar(25),
+        description varchar(255),
+        KEY `lang` (`lang`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- bi-directional support, keyed by script subcode
+DROP TABLE IF EXISTS language_script_bidi;
+CREATE TABLE language_script_bidi (
+        rfc4646_subtag varchar(25), -- script subtag, Arab, Hebr, etc.
+        bidi varchar(3), -- rtl ltr
+        KEY `rfc4646_subtag` (`rfc4646_subtag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- TODO: need to map language subtags to script subtags for detection
+-- of bidi when script is not specified (like ar, he)
+DROP TABLE IF EXISTS language_script_mapping;
+CREATE TABLE language_script_mapping (
+        language_subtag varchar(25),
+        script_subtag varchar(25),
+        KEY `language_subtag` (`language_subtag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `permissions`;
+CREATE TABLE `permissions` (
+  `module_bit` int(11) NOT NULL DEFAULT 0,
+  `code` varchar(64) DEFAULT NULL,
+  `description` varchar(255) DEFAULT NULL,
+  PRIMARY KEY  (`module_bit`, `code`),
+  CONSTRAINT `permissions_ibfk_1` FOREIGN KEY (`module_bit`) REFERENCES `userflags` (`bit`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `serialitems`;
+CREATE TABLE `serialitems` (
+       `itemnumber` int(11) NOT NULL,
+       `serialid` int(11) NOT NULL,
+       UNIQUE KEY `serialitemsidx` (`itemnumber`),
+       KEY `serialitems_sfk_1` (`serialid`),
+       CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+                 
+DROP TABLE IF EXISTS `user_permissions`;
+CREATE TABLE `user_permissions` (
+  `borrowernumber` int(11) NOT NULL DEFAULT 0,
+  `module_bit` int(11) NOT NULL DEFAULT 0,
+  `code` varchar(64) DEFAULT NULL,
+  CONSTRAINT `user_permissions_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`)
+    ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `user_permissions_ibfk_2` FOREIGN KEY (`module_bit`, `code`) REFERENCES `permissions` (`module_bit`, `code`)
+    ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `tmp_holdsqueue`
+--
+
+DROP TABLE IF EXISTS `tmp_holdsqueue`;
+CREATE TABLE `tmp_holdsqueue` (
+  `biblionumber` int(11) default NULL,
+  `itemnumber` int(11) default NULL,
+  `barcode` varchar(20) default NULL,
+  `surname` mediumtext NOT NULL,
+  `firstname` text,
+  `phone` text,
+  `borrowernumber` int(11) NOT NULL,
+  `cardnumber` varchar(16) default NULL,
+  `reservedate` date default NULL,
+  `title` mediumtext,
+  `itemcallnumber` varchar(30) default NULL,
+  `holdingbranch` varchar(10) default NULL,
+  `pickbranch` varchar(10) default NULL,
+  `notes` text,
+  `item_level_request` tinyint(4) NOT NULL default 0
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `message_queue`
+--
+
+DROP TABLE IF EXISTS `message_queue`;
+CREATE TABLE `message_queue` (
+  `message_id` int(11) NOT NULL auto_increment,
+  `borrowernumber` int(11) default NULL,
+  `subject` text,
+  `content` text,
+  `metadata` text DEFAULT NULL,
+  `letter_code` varchar(64) DEFAULT NULL,
+  `message_transport_type` varchar(20) NOT NULL,
+  `status` enum('sent','pending','failed','deleted') NOT NULL default 'pending',
+  `time_queued` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+  `to_address` mediumtext,
+  `from_address` mediumtext,
+  `content_type` text,
+  KEY `message_id` (`message_id`),
+  KEY `borrowernumber` (`borrowernumber`),
+  KEY `message_transport_type` (`message_transport_type`),
+  CONSTRAINT `messageq_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `messageq_ibfk_2` FOREIGN KEY (`message_transport_type`) REFERENCES `message_transport_types` (`message_transport_type`) ON DELETE RESTRICT ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `message_transport_types`
+--
+
+DROP TABLE IF EXISTS `message_transport_types`;
+CREATE TABLE `message_transport_types` (
+  `message_transport_type` varchar(20) NOT NULL,
+  PRIMARY KEY  (`message_transport_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `message_attributes`
+--
+
+DROP TABLE IF EXISTS `message_attributes`;
+CREATE TABLE `message_attributes` (
+  `message_attribute_id` int(11) NOT NULL auto_increment,
+  `message_name` varchar(20) NOT NULL default '',
+  `takes_days` tinyint(1) NOT NULL default '0',
+  PRIMARY KEY  (`message_attribute_id`),
+  UNIQUE KEY `message_name` (`message_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `message_transports`
+--
+
+DROP TABLE IF EXISTS `message_transports`;
+CREATE TABLE `message_transports` (
+  `message_attribute_id` int(11) NOT NULL,
+  `message_transport_type` varchar(20) NOT NULL,
+  `is_digest` tinyint(1) NOT NULL default '0',
+  `letter_module` varchar(20) NOT NULL default '',
+  `letter_code` varchar(20) NOT NULL default '',
+  PRIMARY KEY  (`message_attribute_id`,`message_transport_type`,`is_digest`),
+  KEY `message_transport_type` (`message_transport_type`),
+  KEY `letter_module` (`letter_module`,`letter_code`),
+  CONSTRAINT `message_transports_ibfk_1` FOREIGN KEY (`message_attribute_id`) REFERENCES `message_attributes` (`message_attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `message_transports_ibfk_2` FOREIGN KEY (`message_transport_type`) REFERENCES `message_transport_types` (`message_transport_type`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `message_transports_ibfk_3` FOREIGN KEY (`letter_module`, `letter_code`) REFERENCES `letter` (`module`, `code`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `borrower_message_preferences`
+--
+
+DROP TABLE IF EXISTS `borrower_message_preferences`;
+CREATE TABLE `borrower_message_preferences` (
+  `borrower_message_preference_id` int(11) NOT NULL auto_increment,
+  `borrowernumber` int(11) default NULL,
+  `categorycode` varchar(10) default NULL,
+  `message_attribute_id` int(11) default '0',
+  `days_in_advance` int(11) default '0',
+  `wants_digest` tinyint(1) NOT NULL default '0',
+  PRIMARY KEY  (`borrower_message_preference_id`),
+  KEY `borrowernumber` (`borrowernumber`),
+  KEY `categorycode` (`categorycode`),
+  KEY `message_attribute_id` (`message_attribute_id`),
+  CONSTRAINT `borrower_message_preferences_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `borrower_message_preferences_ibfk_2` FOREIGN KEY (`message_attribute_id`) REFERENCES `message_attributes` (`message_attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `borrower_message_preferences_ibfk_3` FOREIGN KEY (`categorycode`) REFERENCES `categories` (`categorycode`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `borrower_message_transport_preferences`
+--
+
+DROP TABLE IF EXISTS `borrower_message_transport_preferences`;
+CREATE TABLE `borrower_message_transport_preferences` (
+  `borrower_message_preference_id` int(11) NOT NULL default '0',
+  `message_transport_type` varchar(20) NOT NULL default '0',
+  PRIMARY KEY  (`borrower_message_preference_id`,`message_transport_type`),
+  KEY `message_transport_type` (`message_transport_type`),
+  CONSTRAINT `borrower_message_transport_preferences_ibfk_1` FOREIGN KEY (`borrower_message_preference_id`) REFERENCES `borrower_message_preferences` (`borrower_message_preference_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `borrower_message_transport_preferences_ibfk_2` FOREIGN KEY (`message_transport_type`) REFERENCES `message_transport_types` (`message_transport_type`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for the table branch_transfer_limits
+--
+
+DROP TABLE IF EXISTS `branch_transfer_limits`;
+CREATE TABLE branch_transfer_limits (
+    limitId int(8) NOT NULL auto_increment,
+    toBranch varchar(10) NOT NULL,
+    fromBranch varchar(10) NOT NULL,
+    itemtype varchar(10) NULL,
+    ccode varchar(10) NULL,  
+    PRIMARY KEY  (limitId)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `item_circulation_alert_preferences`
+--
+
+DROP TABLE IF EXISTS `item_circulation_alert_preferences`;
+CREATE TABLE `item_circulation_alert_preferences` (
+  `id` int(11) NOT NULL auto_increment,
+  `branchcode` varchar(10) NOT NULL,
+  `categorycode` varchar(10) NOT NULL,
+  `item_type` varchar(10) NOT NULL,
+  `notification` varchar(16) NOT NULL,
+  PRIMARY KEY  (`id`),
+  KEY `branchcode` (`branchcode`,`categorycode`,`item_type`, `notification`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Table structure for table `fieldmapping`
+--
+
+DROP TABLE IF EXISTS `fieldmapping`;
+CREATE TABLE `fieldmapping` (
+  `id` int(11) NOT NULL auto_increment,
+  `field` varchar(255) NOT NULL,
+  `frameworkcode` char(4) NOT NULL default '',
+  `fieldcode` char(3) NOT NULL,
+  `subfieldcode` char(1) NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+
 /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;