Bug 18887: Fix DB structure issues
[koha.git] / installer / data / mysql / atomicupdate / bug_18887.perl
1 $DBversion = 'XXX';  # will be replaced by the RM
2 if( CheckVersion( $DBversion ) ) {
3
4     unless (TableExists('circulation_rules')){
5         $dbh->do(q{
6             CREATE TABLE `circulation_rules` (
7               `id` int(11) NOT NULL auto_increment,
8               `branchcode` varchar(10) NULL default NULL,
9               `categorycode` varchar(10) NULL default NULL,
10               `itemtype` varchar(10) NULL default NULL,
11               `rule_name` varchar(32) NOT NULL,
12               `rule_value` varchar(32) NOT NULL,
13               PRIMARY KEY (`id`),
14               KEY `branchcode` (`branchcode`),
15               KEY `categorycode` (`categorycode`),
16               KEY `itemtype` (`itemtype`),
17               KEY `rule_name` (`rule_name`),
18               UNIQUE (`branchcode`,`categorycode`,`itemtype`,`rule_name`)
19             ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
20         });
21     }
22
23     $dbh->do(q{
24         INSERT INTO circulation_rules ( branchcode, categorycode, itemtype, rule_name, rule_value )
25         SELECT branchcode, categorycode, NULL, 'max_holds', COALESCE( max_holds, '' ) FROM branch_borrower_circ_rules
26     });
27
28     $dbh->do(q{
29         INSERT INTO circulation_rules ( branchcode, categorycode, itemtype, rule_name, rule_value )
30         SELECT NULL, categorycode, NULL, 'max_holds', COALESCE( max_holds, '' ) FROM default_borrower_circ_rules
31     });
32
33     $dbh->do(q{
34         ALTER TABLE branch_borrower_circ_rules DROP COLUMN max_holds
35     });
36
37     $dbh->do(q{
38         ALTER TABLE default_borrower_circ_rules DROP COLUMN max_holds
39     });
40
41     SetVersion( $DBversion );
42     print "Upgrade to $DBversion done (Bug 18887 - Introduce new table 'circulation_rules', use for 'max_holds' rules)\n";
43 }