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

(-)a/installer/data/mysql/db_revs/241200018.pl (-7 / +18 lines)
Lines 1-5 Link Here
1
use Modern::Perl;
1
use Modern::Perl;
2
use Koha::Installer::Output qw(say_warning say_success say_info);
2
use Koha::Installer::Output qw(say_warning say_success( $out, say_info);
3
3
4
return {
4
return {
5
    bug_number  => "38663",
5
    bug_number  => "38663",
Lines 8-21 return { Link Here
8
        my ($args) = @_;
8
        my ($args) = @_;
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
10
10
11
        $dbh->do(q{ ALTER TABLE additional_field_values ADD COLUMN new_record_id VARCHAR(11) NOT NULL DEFAULT ''; });
11
        my $sth = $dbh->prepare("SHOW COLUMNS FROM additional_field_values WHERE Field = 'record_id'");
12
        $sth->execute();
13
        my $column_info = $sth->fetchrow_hashref();
12
14
13
        $dbh->do(q{ UPDATE additional_field_values SET new_record_id = CAST(record_id AS CHAR(11)); });
15
        if ( $column_info && $column_info->{Type} eq 'int(11)' ) {
14
16
15
        $dbh->do(q{ ALTER TABLE additional_field_values DROP COLUMN record_id; });
17
            # Only run the migration if record_id is still an integer type
18
            say_info( $out, "Converting record_id from int(11) to VARCHAR(11)...\n");
16
19
17
        $dbh->do(q{ ALTER TABLE additional_field_values RENAME COLUMN new_record_id TO record_id; });
20
            $dbh->do(
21
                q{ ALTER TABLE additional_field_values ADD COLUMN new_record_id VARCHAR(11) NOT NULL DEFAULT ''; });
22
            $dbh->do(q{ UPDATE additional_field_values SET new_record_id = CAST(record_id AS CHAR(11)); });
23
            $dbh->do(q{ ALTER TABLE additional_field_values DROP COLUMN record_id; });
24
            $dbh->do(q{ ALTER TABLE additional_field_values RENAME COLUMN new_record_id TO record_id; });
18
25
19
        say_success( $out, "Converted additional_field_values.record_id to VARCHAR" );
26
            say_success( $out, "Converted record_id to VARCHAR");
27
        } else {
28
29
            # Either the column doesn't exist or it's already been converted
30
            say_info( $out, "No conversion needed for record_id column.");
31
        }
20
    },
32
    },
21
};
33
};
22
- 

Return to bug 38663