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 |
- |
|
|