success('Turned on maintenance mode'); // Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { if (!OC_Util::ishtaccessworking()) { if (!file_exists(OC::$SERVERROOT . '/data/.htaccess')) { OC_Setup::protectDataDirectory(); } } } $result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); if (!$result) { $watcher->failure('Error updating database'); } $watcher->success('Updated database'); $minimizerCSS = new OC_Minimizer_CSS(); $minimizerCSS->clearCache(); $minimizerJS = new OC_Minimizer_JS(); $minimizerJS->clearCache(); OC_Config::setValue('version', implode('.', OC_Util::getVersion())); OC_App::checkAppsRequirements(); // load all apps to also upgrade enabled apps OC_App::loadApps(); OC_Config::setValue('maintenance', false); $watcher->success('Turned off maintenance mode'); $watcher->done(); } class UpdateWatcher { /** * @var \OC_EventSource $eventSource; */ private $eventSource; public function __construct($eventSource) { $this->eventSource = $eventSource; } public function success($message) { OC_Util::obEnd(); $this->eventSource->send('success', $message); ob_start(); } public function error($message) { OC_Util::obEnd(); $this->eventSource->send('error', $message); ob_start(); } public function failure($message) { OC_Util::obEnd(); $this->eventSource->send('failure', $message); $this->eventSource->close(); die(); } public function done() { OC_Util::obEnd(); $this->eventSource->send('done', ''); $this->eventSource->close(); } }