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

(-)a/installer/data/mysql/atomicupdate/update_user_permissions_table.pl (+26 lines)
Line 0 Link Here
1
use Modern::Perl;
2
3
return {
4
    bug_number => "BUG_NUMBER",
5
    description => "Update user_permissions to add primary key and remove null option from code column",
6
    up => sub {
7
        my ($args) = @_;
8
        my ($dbh, $out) = @$args{qw(dbh out)};
9
        unless(
10
            primary_key_exists( 'user_permissions', 'borrowernumber') &&
11
            primary_key_exists( 'user_permissions', 'module_bit' ) &&
12
            primary_key_exists( 'user_permissions', 'code')
13
        ){
14
            $dbh->do(q{
15
                ALTER TABLE user_permissions DROP INDEX IF EXISTS `PRIMARY`
16
            });
17
            say $out "Drop any previously created keys";
18
            $dbh->do(q{
19
                ALTER TABLE user_permissions ADD CONSTRAINT PK_borrowernumber_module_code PRIMARY KEY (borrowernumber,module_bit,code)
20
            });
21
            say $out "Add a primary key to user_permissions on borrowernumber, module_bit, code";
22
        }
23
        # Print useful stuff here
24
        say $out "Update is going well so far";
25
    },
26
}
(-)a/installer/data/mysql/kohastructure.sql (-1 / +1 lines)
Lines 5161-5166 CREATE TABLE `user_permissions` ( Link Here
5161
  `borrowernumber` int(11) NOT NULL DEFAULT 0,
5161
  `borrowernumber` int(11) NOT NULL DEFAULT 0,
5162
  `module_bit` int(11) NOT NULL DEFAULT 0,
5162
  `module_bit` int(11) NOT NULL DEFAULT 0,
5163
  `code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
5163
  `code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
5164
  PRIMARY KEY (`borrowernumber`,`module_bit`,`code`),
5164
  KEY `user_permissions_ibfk_1` (`borrowernumber`),
5165
  KEY `user_permissions_ibfk_1` (`borrowernumber`),
5165
  KEY `user_permissions_ibfk_2` (`module_bit`,`code`),
5166
  KEY `user_permissions_ibfk_2` (`module_bit`,`code`),
5166
  CONSTRAINT `user_permissions_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
5167
  CONSTRAINT `user_permissions_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE,
5167
- 

Return to bug 29125