[Koha-patches] [PATCH] Enhancement: Make web installer log errors to error log
Chris Nighswonger
cnighswonger at foundations.edu
Wed Jan 13 19:33:30 CET 2010
The web installer should log errors to the error log instead of only
dumping them to the browser. This will allow a record of the errors
which may be useful for later debugging.
---
C4/Installer.pm | 29 ++++++++++++++++-------------
installer/install.pl | 2 ++
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/C4/Installer.pm b/C4/Installer.pm
index 2e1fe1a..442ea73 100644
--- a/C4/Installer.pm
+++ b/C4/Installer.pm
@@ -74,13 +74,13 @@ sub new {
$self->{'port'} = C4::Context->config("port");
$self->{'user'} = C4::Context->config("user");
$self->{'password'} = C4::Context->config("pass");
- $self->{'dbh'} = DBI->connect("DBI:$self->{dbms}:dbname=$self->{dbname};host=$self->{hostname}" .
+ $self->{'dbh'} = DBI->connect("DBI:$self->{dbms}:dbname=$self->{dbname};host=$self->{hostname}" .
( $self->{port} ? ";port=$self->{port}" : "" ),
$self->{'user'}, $self->{'password'});
$self->{'language'} = undef;
$self->{'marcflavour'} = undef;
$self->{'dbh'}->do('set NAMES "utf8"');
- $self->{'dbh'}->{'mysql_enable_utf8'}=1;
+ $self->{'dbh'}->{'mysql_enable_utf8'}=1;
bless $self, $class;
return $self;
@@ -150,7 +150,7 @@ sub marc_framework_sql_list {
}
my @listdir = sort grep { !/^\.|marcflavour/ && -d "$dir/$_" } readdir(MYDIR);
closedir MYDIR;
-
+
my @fwklist;
my $request = $self->{'dbh'}->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
$request->execute;
@@ -192,7 +192,7 @@ sub marc_framework_sql_list {
$cell{"code"} = lc($requirelevel);
push @fwklist, \%cell;
}
-
+
return ($defaulted_to_en, \@fwklist);
}
@@ -300,9 +300,9 @@ sub sql_file_list {
my ($marc_defaulted_to_en, $marc_sql) = $self->marc_framework_sql_list($lang, $marcflavour);
my ($sample_defaulted_to_en, $sample_sql) = $self->sample_data_sql_list($lang);
-
+
my @sql_list = ();
- map {
+ map {
map {
if ($subset_wanted->{'mandatory'}) {
push @sql_list, $_->{'fwkfile'} if $_->{'mandatory'};
@@ -312,11 +312,11 @@ sub sql_file_list {
}
} @{ $_->{'frameworks'} }
} (@$marc_sql, @$sample_sql);
-
+
return \@sql_list
}
-=head2 load_db_schema
+=head2 load_db_schema
=over 4
@@ -356,7 +356,7 @@ directory path). This means that dependencies among the scripts are to
be resolved by carefully naming them, keeping in mind that the directory name
does *not* currently count.
-FIXME: this is a rather delicate way of dealing with dependencies between
+FIXME: this is a rather delicate way of dealing with dependencies between
the install scripts.
The return value C<$list> is an arrayref containing a hashref for each
@@ -429,7 +429,7 @@ sub load_sql_in_order {
return ($fwk_language, \@list);
}
-=head2 set_marcflavour_syspref
+=head2 set_marcflavour_syspref
=over 4
@@ -462,7 +462,7 @@ sub set_marcflavour_syspref {
$request->execute;
}
-=head2 set_indexing_engine
+=head2 set_indexing_engine
=over 4
@@ -569,9 +569,12 @@ sub load_sql {
. " $self->{dbname} "; # Therefore, be sure to run 'trust' on localhost in pg_hba.conf -fbcit
$error = qx($strcmd -f $filename 2>&1 1>/dev/null);
# Be sure to set 'client_min_messages = error' in postgresql.conf
- # so that only true errors are returned to stderr or else the installer will
+ # so that only true errors are returned to stderr or else the installer will
# report the import a failure although it really succeded -fbcit
}
+# errors thrown while loading installer data should be logged
+ warn "C4::Installer::load_sql returned the following errors while attempting to load $filename:\n";
+ warn $error;
return $error;
}
@@ -596,7 +599,7 @@ sub get_file_path_from_name {
my $partialname = shift;
my $lang = 'en'; # FIXME: how do I know what language I want?
-
+
my ($defaulted_to_en, $list) = $self->sample_data_sql_list($lang);
# warn( Data::Dumper->Dump( [ $list ], [ 'list' ] ) );
diff --git a/installer/install.pl b/installer/install.pl
index 4142d06..9d152dd 100755
--- a/installer/install.pl
+++ b/installer/install.pl
@@ -414,6 +414,8 @@ elsif ( $step && $step == 3 ) {
if (@$stderr_buf) {
$template->param(update_errors => [ map { { line => $_ } } split(/\n/, join('', @$stderr_buf)) ] );
$template->param(has_update_errors => 1);
+ warn "The following errors were returned while attempting to run the updatedatabase.pl script:\n";
+ foreach my $line (@$stderr_buf) {warn "$line\n";}
}
$template->param( $op => 1 );
--
1.6.0.4
More information about the Koha-patches
mailing list