View | Details | Raw Unified | Return to bug 15516
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_15516_-_hold_group_table.perl (-20 / +8 lines)
Lines 1-34 Link Here
1
$DBversion = 'XXX';
1
$DBversion = 'XXX';
2
if( CheckVersion( $DBversion ) ) {
2
if( CheckVersion( $DBversion ) ) {
3
3
4
    if( TableExists( 'hold_group' ) ){
4
    unless( TableExists( 'hold_group' ) ) {
5
        $dbh->do(q{UPDATE reserves SET hold_group_id = NULL});
6
        $dbh->do(q{UPDATE old_reserves SET hold_group_id = NULL});
7
8
        $dbh->do(q{ALTER TABLE reserves DROP FOREIGN KEY reserves_ibfk_6});
9
        $dbh->do(q{ALTER TABLE old_reserves DROP FOREIGN KEY old_reserves_ibfk_5});
10
11
        $dbh->do(q{DROP TABLE hold_group});
12
        $dbh->do(q{CREATE TABLE hold_group (
5
        $dbh->do(q{CREATE TABLE hold_group (
13
            hold_group_id int unsigned NOT NULL AUTO_INCREMENT,
6
            hold_group_id int unsigned NOT NULL AUTO_INCREMENT,
14
            PRIMARY KEY (hold_group_id)
7
            PRIMARY KEY (hold_group_id)
15
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci});
8
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci});
16
    }
9
    }
17
10
18
    unless( column_exists( 'reserves', 'hold_group_id' ) ){
11
    unless( column_exists( 'reserves', 'hold_group_id' ) ) {
19
        $dbh->do(q{ALTER TABLE reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL});
12
        $dbh->do(q{ALTER TABLE reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL AFTER non_priority});
20
    }
13
        $dbh->do(q{ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_hold_group FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE});
21
    unless( column_exists( 'old_reserves', 'hold_group_id') ){
22
        $dbh->do(q{ALTER TABLE old_reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL});
23
    }
14
    }
24
15
25
    unless( foreign_key_exists( 'reserves', 'reserves_ibfk_6' ) ){
16
    unless( column_exists( 'old_reserves', 'hold_group_id') ) {
26
        $dbh->do(q{ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_6 FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE});
17
        $dbh->do(q{ALTER TABLE old_reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL AFTER non_priority});
27
    }
18
        $dbh->do(q{ALTER TABLE old_reserves ADD CONSTRAINT old_reserves_ibfk_hold_group FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE});
28
    unless( foreign_key_exists( 'old_reserves', 'old_reserves_ibfk_5' ) ){
29
        $dbh->do(q{ALTER TABLE old_reserves ADD CONSTRAINT old_reserves_ibfk_5 FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE});
30
    }
19
    }
31
20
32
    SetVersion( $DBversion );
21
    NewVersion( $DBversion, 15516, "Adding hold group table");
33
    print "Upgrade to $DBversion done (Bug 15516 - Adding hold group table)\n";
34
}
22
}
(-)a/installer/data/mysql/kohastructure.sql (-3 / +2 lines)
Lines 1838-1844 CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha Link Here
1838
  CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE,
1838
  CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE,
1839
  CONSTRAINT `reserves_ibfk_5` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE,
1839
  CONSTRAINT `reserves_ibfk_5` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE,
1840
  CONSTRAINT `reserves_ibfk_6` FOREIGN KEY (`desk_id`) REFERENCES `desks` (`desk_id`) ON DELETE SET NULL ON UPDATE CASCADE,
1840
  CONSTRAINT `reserves_ibfk_6` FOREIGN KEY (`desk_id`) REFERENCES `desks` (`desk_id`) ON DELETE SET NULL ON UPDATE CASCADE,
1841
  CONSTRAINT `reserves_ibfk_7` FOREIGN KEY (`hold_group_id`) REFERENCES `hold_group` (`hold_group_id`) ON DELETE SET NULL ON UPDATE CASCADE
1841
  CONSTRAINT `reserves_ibfk_hold_group` FOREIGN KEY (`hold_group_id`) REFERENCES `hold_group` (`hold_group_id`) ON DELETE SET NULL ON UPDATE CASCADE
1842
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1842
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1843
1843
1844
--
1844
--
Lines 1885-1891 CREATE TABLE `old_reserves` ( -- this table holds all holds/reserves that have b Link Here
1885
    ON DELETE SET NULL ON UPDATE SET NULL,
1885
    ON DELETE SET NULL ON UPDATE SET NULL,
1886
  CONSTRAINT `old_reserves_ibfk_4` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`)
1886
  CONSTRAINT `old_reserves_ibfk_4` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`)
1887
    ON DELETE SET NULL ON UPDATE SET NULL,
1887
    ON DELETE SET NULL ON UPDATE SET NULL,
1888
  CONSTRAINT `old_reserves_ibfk_5` FOREIGN KEY (`hold_group_id`) REFERENCES `hold_group` (`hold_group_id`)
1888
  CONSTRAINT `old_reserves_ibfk_hold_group` FOREIGN KEY (`hold_group_id`) REFERENCES `hold_group` (`hold_group_id`)
1889
    ON DELETE SET NULL ON UPDATE CASCADE
1889
    ON DELETE SET NULL ON UPDATE CASCADE
1890
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1890
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1891
1891
1892
- 

Return to bug 15516