installer: shows status message on DB connection error
authorAntoine Musso <hashar@free.fr>
Wed, 2 Oct 2013 10:33:48 +0000 (12:33 +0200)
committerHashar <hashar@free.fr>
Wed, 13 Nov 2013 14:06:48 +0000 (14:06 +0000)
While installing MediaWiki with a sqlite backend and missing the sqlite
extension, I have received the very helpful message:

  DatabaseInstaller::setupSchemaVars: unexpected DB connection error

Which to me is as helpful as:

  error

Since the database connection returns a Status object and that it got a
message attached, we might as well pass the error message when raising
the exception.  We would end up with an error like:

 DB connection error: could not find driver.
 Check the data directory and database name below and try again.

That let me instantly facepalm and install the sqlite PHP extension
instead of wasting time figuring out what is happening.

Change-Id: Ife8e97242e1cfbdfbb572ad50cf8e4a7ad5b9dfc

includes/installer/DatabaseInstaller.php

index 43d90e5..b4f2194 100644 (file)
@@ -243,7 +243,10 @@ abstract class DatabaseInstaller {
                if ( $status->isOK() ) {
                        $status->value->setSchemaVars( $this->getSchemaVars() );
                } else {
-                       throw new MWException( __METHOD__ . ': unexpected DB connection error' );
+                       $msg = __METHOD__ . ': unexpected error while establishing'
+                               . ' a database connection with message: '
+                               . $status->getMessage()->plain();
+                       throw new MWException( $msg );
                }
        }