55 lines
2 KiB
Perl
Executable file
55 lines
2 KiB
Perl
Executable file
use Modern::Perl;
|
|
use Koha::Installer::Output qw(say_warning say_failure say_success say_info);
|
|
|
|
return {
|
|
bug_number => "35044",
|
|
description => "Add repeatable option to additional_fields",
|
|
up => sub {
|
|
my ($args) = @_;
|
|
my ( $dbh, $out ) = @$args{qw(dbh out)};
|
|
|
|
unless ( column_exists( 'additional_fields', 'repeatable' ) ) {
|
|
$dbh->do(
|
|
q{
|
|
ALTER TABLE additional_fields ADD COLUMN `repeatable` tinyint(1) NOT NULL DEFAULT 0 COMMENT
|
|
'does the field allow more than one option?' AFTER searchable
|
|
}
|
|
);
|
|
say_success( $out, "Added repeatable column to additional_fields table" );
|
|
}
|
|
|
|
if ( unique_key_exists( 'additional_field_values', 'field_record' ) ) {
|
|
|
|
# Need to drop foreign key so that we can then drop the unique key
|
|
$dbh->do(
|
|
q{
|
|
ALTER TABLE additional_field_values DROP FOREIGN KEY afv_fk
|
|
}
|
|
);
|
|
|
|
# Drop the unique key
|
|
$dbh->do(
|
|
q{
|
|
ALTER TABLE additional_field_values DROP INDEX field_record;
|
|
}
|
|
);
|
|
|
|
# Restore foreign key constraint
|
|
$dbh->do(
|
|
q{
|
|
ALTER TABLE additional_field_values ADD CONSTRAINT `afv_fk` FOREIGN KEY(`field_id`) REFERENCES
|
|
`additional_fields` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
}
|
|
);
|
|
say_success(
|
|
$out,
|
|
"Removed UNIQUE KEY `field_record` (`field_id`,`record_id`) from the additional_field_values table"
|
|
);
|
|
}
|
|
|
|
my $number_of_entries = $dbh->do(q{DELETE FROM additional_field_values WHERE value = ''});
|
|
if ( defined $number_of_entries && $number_of_entries > 0 ) {
|
|
say_info( $out, "Removed $number_of_entries redundant additional_field_values entries with empty value" );
|
|
}
|
|
},
|
|
};
|