Koha/installer/data/mysql/db_revs/231200023.pl
Martin Renvoize 364ada88b0
Bug 32132: (RM follow-up) Merge supplimentary db update
This patch merges the logic from the supplimentary database update that
was requested into the original DB update revision making the update
more reliable.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2024-04-23 16:47:16 +01:00

32 lines
1.5 KiB
Perl
Executable file

use Modern::Perl;
return {
bug_number => "32132",
description => "Set aqbudgets.budget_period_id as NOT NULL",
up => sub {
my ($args) = @_;
my ( $dbh, $out ) = @$args{qw(dbh out)};
# Do you stuffs here
my $count_sql = q{SELECT COUNT(*) FROM aqbudgets WHERE budget_period_id IS NULL};
my ($count) = $dbh->selectrow_array($count_sql);
if ($count) {
$dbh->do(
q{INSERT IGNORE INTO aqbudgetperiods (budget_period_startdate, budget_period_enddate, budget_period_active, budget_period_description, budget_period_locked) VALUES (curdate(), curdate(), 0, "Budget for funds without budget", 1)}
);
say $out "Added dummy budget period";
my $aqbp_sql =
q{SELECT budget_period_id FROM aqbudgetperiods WHERE budget_period_description = "Budget for funds without budget"};
my ($aqbp_id) = $dbh->selectrow_array($aqbp_sql);
$dbh->do( q{UPDATE aqbudgets SET budget_period_id = ? WHERE budget_period_id IS NULL}, undef, $aqbp_id );
say $out "Updated columns aqbudgets.budget_period_id with value NULL";
say $out
"There were $count budget(s) without budget_period_id. They all have been updated to be under budget called 'Budget for funds without budget' (id $aqbp_id).";
}
$dbh->do(q{ALTER TABLE aqbudgets MODIFY COLUMN `budget_period_id` INT(11) NOT NULL});
say $out "Updated aqbudgets.budget_period_id to NOT accept NULL values";
},
};