X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=src%2FCore%2FUpdate.php;h=5df0675cdaeb46cd7520468d693e79f349b034c2;hb=4facd1dfdba93ede48ca40b5e146424e6701118b;hp=13968833576bdc4910dc8210fa6541f86a002354;hpb=8821d33f73785884cfce83e7b23d3ef19cc1bc11;p=friendica.git diff --git a/src/Core/Update.php b/src/Core/Update.php index 1396883357..5df0675cda 100644 --- a/src/Core/Update.php +++ b/src/Core/Update.php @@ -4,6 +4,7 @@ namespace Friendica\Core; use Friendica\Database\DBA; use Friendica\Database\DBStructure; +use Friendica\Util\Strings; class Update { @@ -13,10 +14,16 @@ class Update /** * @brief Function to check if the Database structure needs an update. * + * @param string $basePath The base path of this application * @param boolean $via_worker boolean Is the check run via the worker? + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function check($via_worker) + public static function check($basePath, $via_worker) { + if (!DBA::connected()) { + return; + } + $build = Config::get('system', 'build'); if (empty($build)) { @@ -32,7 +39,7 @@ class Update if ($build < DB_UPDATE_VERSION) { // When we cannot execute the database update via the worker, we will do it directly if (!Worker::add(PRIORITY_CRITICAL, 'DBUpdate') && $via_worker) { - self::run(); + self::run($basePath); } } } @@ -40,13 +47,15 @@ class Update /** * Automatic database updates * - * @param bool $force Force the Update-Check even if the lock is set - * @param bool $verbose Run the Update-Check verbose - * @param bool $sendMail Sends a Mail to the administrator in case of success/failure + * @param string $basePath The base path of this application + * @param bool $force Force the Update-Check even if the lock is set + * @param bool $verbose Run the Update-Check verbose + * @param bool $sendMail Sends a Mail to the administrator in case of success/failure * * @return string Empty string if the update is successful, error messages otherwise + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function run($force = false, $verbose = false, $sendMail = true) + public static function run($basePath, $force = false, $verbose = false, $sendMail = true) { // In force mode, we release the dbupdate lock first // Necessary in case of an stuck update @@ -84,7 +93,7 @@ class Update } // update the structure in one call - $retval = DBStructure::update($verbose, true); + $retval = DBStructure::update($basePath, $verbose, true); if ($retval) { if ($sendMail) { self::updateFailed( @@ -117,6 +126,8 @@ class Update Lock::release('dbupdate'); } } + } elseif ($force) { + DBStructure::update($basePath, $verbose, true); } return ''; @@ -125,10 +136,11 @@ class Update /** * Executes a specific update function * - * @param int $x the DB version number of the function + * @param int $x the DB version number of the function * @param string $prefix the prefix of the function (update, pre_update) * * @return bool true, if the update function worked + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function runUpdateFunction($x, $prefix) { @@ -188,8 +200,9 @@ class Update /** * send the email and do what is needed to do on update fails * - * @param int $update_id number of failed update - * @param string $error_message error message + * @param int $update_id number of failed update + * @param string $error_message error message + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ private static function updateFailed($update_id, $error_message) { //send the administrators an e-mail @@ -209,7 +222,7 @@ class Update $lang = (($admin['language'])?$admin['language']:'en'); L10n::pushLang($lang); - $preamble = deindent(L10n::t(" + $preamble = Strings::deindent(L10n::t(" The friendica developers released update %s recently, but when I tried to install it, something went terribly wrong. This needs to be fixed soon and I can't do it alone. Please contact a @@ -244,7 +257,7 @@ class Update $lang = (($admin['language']) ? $admin['language'] : 'en'); L10n::pushLang($lang); - $preamble = deindent(L10n::t(" + $preamble = Strings::deindent(L10n::t(" The friendica database was successfully updated from %s to %s.", $from_build, $to_build));