From 2e969b11cb5f58c7b693f008eac61483623f9445 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 13 Mar 2019 00:36:48 +0000 Subject: [PATCH] Bug 21946: Database updates --- installer/data/mysql/atomicupdate/bug_21946.perl | 20 ++++++++++++++++++++ installer/data/mysql/kohastructure.sql | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_21946.perl diff --git a/installer/data/mysql/atomicupdate/bug_21946.perl b/installer/data/mysql/atomicupdate/bug_21946.perl new file mode 100644 index 0000000..e5bbc86 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_21946.perl @@ -0,0 +1,20 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + unless ( column_exists('itemtypes', 'parent_type') ) { + $dbh->do(q{ + ALTER TABLE itemtypes + ADD COLUMN parent_type VARCHAR(10) NULL DEFAULT NULL + AFTER itemtype; + + }); + } + unless ( foreign_key_exists( 'itemtypes', 'itemtypes_ibfk_1') ){ + $dbh->do(q{ + ALTER TABLE itemtypes + ADD CONSTRAINT itemtypes_ibfk_1 + FOREIGN KEY (parent_type) REFERENCES itemtypes (itemtype) + }); + } + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 21946 - Add parent type to itemtypes)\n"; +} diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 7b78a87..f4a3440 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -951,6 +951,7 @@ CREATE TABLE `items` ( -- holdings/item information DROP TABLE IF EXISTS `itemtypes`; CREATE TABLE `itemtypes` ( -- defines the item types itemtype varchar(10) NOT NULL default '', -- unique key, a code associated with the item type + parent_type varchar(10) NULL default NULL, -- unique key, a code associated with the item type description LONGTEXT, -- a plain text explanation of the item type rentalcharge decimal(28,6) default NULL, -- the amount charged when this item is checked out/issued rentalcharge_daily decimal(28,6) default NULL, -- the amount charged for each day between checkout date and due date @@ -966,6 +967,7 @@ CREATE TABLE `itemtypes` ( -- defines the item types hideinopac tinyint(1) NOT NULL DEFAULT 0, -- Hide the item type from the search options in OPAC searchcategory varchar(80) default NULL, -- Group this item type with others with the same value on OPAC search options PRIMARY KEY (`itemtype`), + FOREIGN KEY (parent_type) REFERENCES itemtypes(itemtype) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE KEY `itemtype` (`itemtype`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 2.1.4