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

(-)a/installer/data/mysql/atomicupdate/bug_33970.pl (-1 / +55 lines)
Line 0 Link Here
0
- 
1
use Modern::Perl;
2
3
return {
4
    bug_number  => "33970",
5
    description => "Add 'backend' column and to composite primary key in illrequestattributes",
6
    up          => sub {
7
        my ($args) = @_;
8
        my ( $dbh, $out ) = @$args{qw(dbh out)};
9
10
11
        if( !column_exists('illrequestattributes', 'backend') ) {
12
13
            say $out "Adding 'backend' column to 'illrequestattributes' table";
14
            $dbh->do(
15
                q{ ALTER TABLE illrequestattributes ADD COLUMN backend varchar(80) NOT NULL COMMENT 'API ILL backend name' AFTER illrequest_id }
16
            );
17
18
            say $out "Dropping illrequestattributes_ifk foreign key in 'illrequestattributes' table ";
19
            $dbh->do(
20
                q{ ALTER TABLE illrequestattributes DROP FOREIGN KEY illrequestattributes_ifk }
21
            );
22
23
            say $out "Dropping primary key in 'illrequestattributes' table ";
24
            $dbh->do(
25
                q{ ALTER TABLE illrequestattributes DROP PRIMARY KEY }
26
            );
27
28
            say $out "Creating new primary key in 'illrequestattributes' table ";
29
            $dbh->do(
30
                q{ ALTER TABLE illrequestattributes ADD PRIMARY KEY( illrequest_id, backend, type (191)) }
31
            );
32
33
            say $out "Creating new foreign key constraint in 'illrequestattributes' table ";
34
            $dbh->do(
35
                q{
36
                    ALTER TABLE illrequestattributes ADD CONSTRAINT illrequestattributes_ifk
37
                    FOREIGN KEY(illrequest_id)
38
                    REFERENCES illrequests(illrequest_id)
39
                    ON DELETE CASCADE ON UPDATE CASCADE;
40
                }
41
            );
42
43
            say $out "Updating backend value for all pre-existing illrequestattributes";
44
            $dbh->do(
45
                q{
46
                    UPDATE
47
                    illrequestattributes ira,
48
                    illrequests ir
49
                    SET ira.backend = ir.backend
50
                    WHERE ira . illrequest_id = ir.illrequest_id;
51
                }
52
            );
53
        }
54
    },
55
};

Return to bug 33970