Hi,
After the upgrade to 6.2.68 the database health check and upgrade
wouldn't work at all. I added tons of debugging output and tracked down
the problem: When the health check compares the database types, it is
expecting lowercase type names, but SQLITE occasionally gives uppercase
type names.
After forcing SQLITE return values to lowercase, everything seems to
work. Here's a patch:
sympa# diff -c /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm
/usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm.orig
*** /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm Fri Nov 11
12:29:21 2022
--- /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm.orig Fri Nov
11 12:29:01 2022
***************
*** 191,197 ****
}
while (my $field = $sth->fetchrow_hashref('NAME_lc')) {
# http://www.sqlite.org/datatype3.html
! my $type = lc $field->{'type'};
if ($type =~ /int/) {
$type = 'integer';
} elsif ($type =~ /char|clob|text/) {
--- 191,197 ----
}
while (my $field = $sth->fetchrow_hashref('NAME_lc')) {
# http://www.sqlite.org/datatype3.html
! my $type = $field->{'type'};
if ($type =~ /int/) {
$type = 'integer';
} elsif ($type =~ /char|clob|text/) {
sympa#
--
Aleksi Suhonen
() ascii ribbon campaign
/\ support plain text e-mail