diff --git a/lib/base.php b/lib/base.php index 9531f7ed74..ab7cb2990e 100644 --- a/lib/base.php +++ b/lib/base.php @@ -156,7 +156,11 @@ class OC{ $installedVersion=OC_Config::getValue('version','0.0.0'); $currentVersion=implode('.',OC_Util::getVersion()); if (version_compare($currentVersion, $installedVersion, '>')) { - OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); + $result=OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); + if(!$result){ + echo 'Error while upgrading the database'; + die(); + } OC_Config::setValue('version',implode('.',OC_Util::getVersion())); } diff --git a/lib/db.php b/lib/db.php index f6eddf7825..1a5f9874bd 100644 --- a/lib/db.php +++ b/lib/db.php @@ -361,6 +361,11 @@ class OC_DB { $content = file_get_contents( $file ); $previousSchema = self::$schema->getDefinitionFromDatabase(); + if (PEAR::isError($previousSchema)) { + $error = $previousSchema->getMessage(); + OC_Log::write('core','Failed to get existing database structure for upgrading ('.$error.')',OC_Log::FATAL); + return false; + } // Make changes and save them to a temporary file $file2 = tempnam( get_temp_dir(), 'oc_db_scheme_' ); @@ -376,9 +381,9 @@ class OC_DB { unlink( $file2 ); if (PEAR::isError($op)) { - $error = $op->getMessage(); - OC_Log::write('core','Failed to update database structure ('.$error.')',OC_Log::FATAL); - return false; + $error = $op->getMessage(); + OC_Log::write('core','Failed to update database structure ('.$error.')',OC_Log::FATAL); + return false; } return true; }