From edb0ff93ba026081e3fce479252757369ddd2b26 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Thu, 16 Jan 2025 11:06:47 -0600 Subject: [PATCH] Report the types of the fields that differ. For example, the checkbox label will now say "Change type of field from INT to BIGINT when upgrading" if the type of the field in the database is INT and the type in the schema is BIGINT. --- lib/WeBWorK/ContentGenerator/CourseAdmin.pm | 6 +++++- lib/WeBWorK/Utils/CourseDBIntegrityCheck.pm | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/WeBWorK/ContentGenerator/CourseAdmin.pm b/lib/WeBWorK/ContentGenerator/CourseAdmin.pm index 63e14daf58..479930a4dc 100644 --- a/lib/WeBWorK/ContentGenerator/CourseAdmin.pm +++ b/lib/WeBWorK/ContentGenerator/CourseAdmin.pm @@ -2808,7 +2808,11 @@ sub formatReportOnDatabaseTables ($c, $dbStatus, $courseID = undef) { "$courseID.$table.fix_type_fieldIDs" => $key, class => 'form-check-input' ), - $c->maketext('Change type of field when upgrading') + $c->maketext( + 'Change type of field from [_1] to [_2] when upgrading', + $fieldInfo{$key}[1], + $fieldInfo{$key}[2] + ) )->join('') ) ) diff --git a/lib/WeBWorK/Utils/CourseDBIntegrityCheck.pm b/lib/WeBWorK/Utils/CourseDBIntegrityCheck.pm index 44d3e3b1e4..deb786ee9d 100644 --- a/lib/WeBWorK/Utils/CourseDBIntegrityCheck.pm +++ b/lib/WeBWorK/Utils/CourseDBIntegrityCheck.pm @@ -234,10 +234,10 @@ sub checkTableFields { } else { my $data_type = $database_fields{$field_name}[1]; $data_type =~ s/\(\d*\)$// if $data_type =~ /^(big|small)?int\(\d*\)$/; - $data_type = lc($data_type); - my $schema_data_type = lc($db->{$table}{record}->FIELD_DATA->{$field_name}{type} =~ s/ .*$//r); + $data_type = uc($data_type); + my $schema_data_type = uc($db->{$table}{record}->FIELD_DATA->{$field_name}{type} =~ s/ .*$//r); if ($data_type ne $schema_data_type) { - $fieldStatus{$field_name} = [DIFFER_IN_A_AND_B]; + $fieldStatus{$field_name} = [ DIFFER_IN_A_AND_B, $data_type, $schema_data_type ]; $fields_ok = 0; } }