use Modern::Perl; return { bug_number => "30649", description => "Increase the vendor EDI account password field to 256 characters", up => sub { my ($args) = @_; my ( $dbh, $out ) = @$args{qw(dbh out)}; $dbh->do(q{ ALTER TABLE vendor_edi_accounts CHANGE COLUMN `password` `password` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL }); my $edi_vendors = $dbh->selectall_arrayref( "SELECT * FROM vendor_edi_accounts", { Slice => {} } ); if (@$edi_vendors) { require Koha::Encryption; my $e = Koha::Encryption->new; for my $edi_vendor (@$edi_vendors) { my $id = $edi_vendor->{id}; my $password = $edi_vendor->{password}; $password = $e->encrypt_hex($password); $dbh->do("UPDATE vendor_edi_accounts SET password = '$password' WHERE id = $id"); } } }, };