public function doUpdate(Updater $updater) { // delete schema version_ Option::delete('version_Referers'); $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); // old plugins deleted in 2.0-a17 update file }
public function doUpdate(Updater $updater) { $salt = Common::generateUniqId(); $config = Config::getInstance(); $superuser = $config->superuser; if (!isset($superuser['salt'])) { try { if (is_writable(Config::getLocalConfigPath())) { $superuser['salt'] = $salt; $config->superuser = $superuser; $config->forceSave(); } else { throw new \Exception('mandatory update failed'); } } catch (\Exception $e) { throw new \Piwik\UpdaterErrorException("Please edit your config/config.ini.php file and add below <code>[superuser]</code> the following line: <br /><code>salt = {$salt}</code>"); } } $plugins = $config->Plugins; if (!in_array('MultiSites', $plugins)) { try { if (is_writable(Config::getLocalConfigPath())) { $plugins[] = 'MultiSites'; $config->Plugins = $plugins; $config->forceSave(); } else { throw new \Exception('optional update failed'); } } catch (\Exception $e) { throw new \Exception("You can now enable the new MultiSites plugin in the Plugins screen in the Piwik admin!"); } } $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); }
public function dispatch() { $module = Common::getRequestVar('module', '', 'string'); $action = Common::getRequestVar('action', '', 'string'); if ($module == 'CoreUpdater' || $module == 'Proxy' || $module == 'Installation' || $module == 'LanguagesManager' && $action == 'saveLanguage') { return; } $updater = new PiwikCoreUpdater(); $updates = $updater->getComponentsWithNewVersion(array('core' => Version::VERSION)); if (!empty($updates)) { Filesystem::deleteAllCacheOnUpdate(); } if ($updater->getComponentUpdates() !== null) { if (FrontController::shouldRethrowException()) { throw new Exception("Piwik and/or some plugins have been upgraded to a new version. \n" . "--> Please run the update process first. See documentation: http://piwik.org/docs/update/ \n"); } elseif ($module === 'API') { $outputFormat = strtolower(Common::getRequestVar('format', 'xml', 'string', $_GET + $_POST)); $response = new ResponseBuilder($outputFormat); $e = new Exception('Database Upgrade Required. Your Piwik database is out-of-date, and must be upgraded before you can continue.'); echo $response->getResponseException($e); Common::sendResponseCode(503); exit; } else { Piwik::redirectToModule('CoreUpdater'); } } }
public function doUpdate(Updater $updater) { try { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); } catch (\Exception $e) { } }
public function doUpdate(Updater $updater) { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); try { \Piwik\Plugin\Manager::getInstance()->activatePlugin('Events'); } catch (\Exception $e) { } }
private function getNamespace($component) { $updater = new Updater(); $className = $updater->getUpdateClassName($component, 'xx'); $className = str_replace('Updates_xx', '', $className); $className = trim($className, '\\'); return $className; }
public function doUpdate(Updater $updater) { // manually remove ExampleFeedburner column $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); // remove ExampleFeedburner plugin $pluginToDelete = 'ExampleFeedburner'; self::deletePluginFromConfigFile($pluginToDelete); }
public function doUpdate(Updater $updater) { $pluginManager = \Piwik\Plugin\Manager::getInstance(); try { $pluginManager->activatePlugin('UserLanguage'); } catch (\Exception $e) { } $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); }
public function doUpdate(Updater $updater) { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); self::updateIPAnonymizationSettings(); try { Manager::getInstance()->activatePlugin('TestRunner'); } catch (\Exception $e) { } }
public function doUpdate(Updater $updater) { $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); try { self::migrateConfigSuperUserToDb(); } catch (\Exception $e) { throw new UpdaterErrorException($e->getMessage()); } }
public function testUpdaterChecksCoreAndPluginCheckThatCoreIsRanFirst() { $updater = new Updater(PIWIK_INCLUDE_PATH . '/tests/resources/Updater/core/', PIWIK_INCLUDE_PATH . '/tests/resources/Updater/%s/'); $updater->markComponentSuccessfullyUpdated('testpluginUpdates', '0.1beta'); $updater->markComponentSuccessfullyUpdated('core', '0.1'); $componentsWithUpdateFile = $updater->getComponentsWithUpdateFile(array('testpluginUpdates' => '0.1', 'core' => '0.3')); $this->assertEquals(2, count($componentsWithUpdateFile)); reset($componentsWithUpdateFile); $this->assertEquals('core', key($componentsWithUpdateFile)); }
public function doUpdate(Updater $updater) { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); $obsoleteDirectories = array('/plugins/AdminHome', '/plugins/Home', '/plugins/PluginsAdmin'); foreach ($obsoleteDirectories as $dir) { if (file_exists(PIWIK_INCLUDE_PATH . $dir)) { Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . $dir, true); } } }
public function doUpdate(Updater $updater) { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); // DeviceDetection upgrade in beta1 timed out on demo #6750 $archiveBlobTables = self::getAllArchiveBlobTables(); foreach ($archiveBlobTables as $table) { self::updateBrowserArchives($table); self::updateOsArchives($table); } }
public function doUpdate(Updater $updater) { try { self::enableMaintenanceMode(); $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); self::disableMaintenanceMode(); } catch (\Exception $e) { self::disableMaintenanceMode(); throw $e; } }
public function doUpdate(Updater $updater) { $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); $this->migratePluginEmailUpdateSetting(); // added .woff and woff2 whitelisted file for apache webserver ServerFilesGenerator::deleteHtAccessFiles(); ServerFilesGenerator::createHtAccessFiles(); // Renamed plugin ExampleRssWidget -> RssWidget \Piwik\Plugin\Manager::getInstance()->activatePlugin('RssWidget'); \Piwik\Plugin\Manager::getInstance()->deactivatePlugin('ExampleRssWidget'); }
public function doUpdate(Updater $updater) { // delete schema version_ Option::delete('version_Referers'); $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); // old plugins deleted in 2.0-a17 update file try { \Piwik\Plugin\Manager::getInstance()->activatePlugin('Referrers'); } catch (\Exception $e) { } try { \Piwik\Plugin\Manager::getInstance()->activatePlugin('ScheduledReports'); } catch (\Exception $e) { } }
static function update() { try { Updater::updateDatabase(__FILE__, self::getSql()); } catch (\Exception $e) { } }
public function doUpdate(Updater $updater) { try { $dashboards = Db::fetchAll('SELECT * FROM `' . Common::prefixTable('user_dashboard') . '`'); foreach ($dashboards as $dashboard) { $idDashboard = $dashboard['iddashboard']; $login = $dashboard['login']; $layout = $dashboard['layout']; $layout = html_entity_decode($layout); $layout = str_replace("\\\"", "\"", $layout); Db::query('UPDATE `' . Common::prefixTable('user_dashboard') . '` SET layout = ? WHERE iddashboard = ? AND login = ?', array($layout, $idDashboard, $login)); } $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); } catch (\Exception $e) { } }
static function update() { Updater::updateDatabase(__FILE__, self::getSql()); try { \Piwik\Plugin\Manager::getInstance()->activatePlugin('Events'); } catch (\Exception $e) { } }
public function dispatch() { $module = Common::getRequestVar('module', '', 'string'); $action = Common::getRequestVar('action', '', 'string'); $updater = new PiwikCoreUpdater(); $updates = $updater->getComponentsWithNewVersion(array('core' => Version::VERSION)); if (!empty($updates)) { Filesystem::deleteAllCacheOnUpdate(); } if ($updater->getComponentUpdates() !== null && $module != 'CoreUpdater' && $module != 'Proxy' && $module != 'Installation' && !($module == 'LanguagesManager' && $action == 'saveLanguage')) { if (FrontController::shouldRethrowException()) { throw new Exception("Piwik and/or some plugins have been upgraded to a new version. \n" . "--> Please run the update process first. See documentation: http://piwik.org/docs/update/ \n"); } else { Piwik::redirectToModule('CoreUpdater'); } } }
public function doUpdate(Updater $updater) { $config = Config::getInstance(); $dbInfos = $config->database; if (!isset($dbInfos['schema'])) { try { if (is_writable(Config::getLocalConfigPath())) { $config->database = $dbInfos; $config->forceSave(); } else { throw new \Exception('mandatory update failed'); } } catch (\Exception $e) { } } $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); }
static function update() { // manually remove ExampleFeedburner column Updater::updateDatabase(__FILE__, self::getSql()); // remove ExampleFeedburner plugin $pluginToDelete = 'ExampleFeedburner'; self::deletePluginFromConfigFile($pluginToDelete); }
public function doUpdate(Updater $updater) { // first we disable the plugins and keep an array of warnings messages $pluginsToDisableMessage = array('SearchEnginePosition' => "SearchEnginePosition plugin was disabled, because it is not compatible with the new Piwik 0.6. \n You can download the latest version of the plugin, compatible with Piwik 0.6.\n<a target='_blank' href='?module=Proxy&action=redirect&url=https://github.com/piwik/piwik/issues/502'>Click here.</a>", 'GeoIP' => "GeoIP plugin was disabled, because it is not compatible with the new Piwik 0.6. \nYou can download the latest version of the plugin, compatible with Piwik 0.6.\n<a target='_blank' href='?module=Proxy&action=redirect&url=https://github.com/piwik/piwik/issues/45'>Click here.</a>"); $disabledPlugins = array(); foreach ($pluginsToDisableMessage as $pluginToDisable => $warningMessage) { if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated($pluginToDisable)) { \Piwik\Plugin\Manager::getInstance()->deactivatePlugin($pluginToDisable); $disabledPlugins[] = $warningMessage; } } // Run the SQL $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); // Outputs warning message, pointing users to the plugin download page if (!empty($disabledPlugins)) { throw new \Exception("The following plugins were disabled during the upgrade:" . "<ul><li>" . implode('</li><li>', $disabledPlugins) . "</li></ul>"); } }
public static function update() { Updater::updateDatabase(__FILE__, self::getSql()); self::updateIPAnonymizationSettings(); try { Manager::getInstance()->activatePlugin('TestRunner'); } catch (\Exception $e) { } }
static function update() { Updater::updateDatabase(__FILE__, self::getSql()); try { self::migrateConfigSuperUserToDb(); } catch (\Exception $e) { throw new UpdaterErrorException($e->getMessage()); } }
static function update() { $pluginManager = \Piwik\Plugin\Manager::getInstance(); try { $pluginManager->activatePlugin('UserLanguage'); } catch (\Exception $e) { } Updater::updateDatabase(__FILE__, self::getSql()); }
public static function update() { Updater::updateDatabase(__FILE__, self::getSql()); // DeviceDetection upgrade in beta1 timed out on demo #6750 $archiveBlobTables = self::getAllArchiveBlobTables(); foreach ($archiveBlobTables as $table) { self::updateBrowserArchives($table); self::updateOsArchives($table); } }
static function update() { Updater::updateDatabase(__FILE__, self::getSql()); $obsoleteDirectories = array('/plugins/AdminHome', '/plugins/Home', '/plugins/PluginsAdmin'); foreach ($obsoleteDirectories as $dir) { if (file_exists(PIWIK_INCLUDE_PATH . $dir)) { Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . $dir, true); } } }
public function doUpdate(Updater $updater) { $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); if (!\Piwik\Plugin\Manager::getInstance()->isPluginLoaded('ScheduledReports')) { return; } try { // Common::prefixTable('pdf') has been heavily refactored to be more generic // The following actions are taken in this update script : // - create the new generic report table Common::prefixTable('report') // - migrate previous reports, if any, from Common::prefixTable('pdf') to Common::prefixTable('report') // - delete Common::prefixTable('pdf') $reports = Db::fetchAll('SELECT * FROM `' . Common::prefixTable('pdf') . '`'); foreach ($reports as $report) { $idreport = $report['idreport']; $idsite = $report['idsite']; $login = $report['login']; $description = $report['description']; $period = $report['period']; $format = $report['format']; $display_format = $report['display_format']; $email_me = $report['email_me']; $additional_emails = $report['additional_emails']; $reports = $report['reports']; $ts_created = $report['ts_created']; $ts_last_sent = $report['ts_last_sent']; $deleted = $report['deleted']; $parameters = array(); if (!is_null($additional_emails)) { $parameters[ScheduledReports::ADDITIONAL_EMAILS_PARAMETER] = preg_split('/,/', $additional_emails); } $parameters[ScheduledReports::EMAIL_ME_PARAMETER] = is_null($email_me) ? ScheduledReports::EMAIL_ME_PARAMETER_DEFAULT_VALUE : (bool) $email_me; $parameters[ScheduledReports::DISPLAY_FORMAT_PARAMETER] = $display_format; Db::query('INSERT INTO `' . Common::prefixTable('report') . '` SET idreport = ?, idsite = ?, login = ?, description = ?, period = ?, type = ?, format = ?, reports = ?, parameters = ?, ts_created = ?, ts_last_sent = ?, deleted = ?', array($idreport, $idsite, $login, $description, is_null($period) ? ScheduledReports::DEFAULT_PERIOD : $period, ScheduledReports::EMAIL_TYPE, is_null($format) ? ScheduledReports::DEFAULT_REPORT_FORMAT : $format, json_encode(preg_split('/,/', $reports)), json_encode($parameters), $ts_created, $ts_last_sent, $deleted)); } $updater->executeMigration(__FILE__, $this->migration->db->dropTable('pdf')); } catch (\Exception $e) { } }
public function doUpdate(Updater $updater) { try { $migrations = array(); $table = Common::prefixTable('user_dashboard'); $dashboards = Db::fetchAll('SELECT iddashboard, login, layout FROM `' . $table . '`'); $updateQuery = 'UPDATE `' . $table . '` SET layout = ? WHERE iddashboard = ? AND login = ?'; foreach ($dashboards as $dashboard) { $idDashboard = $dashboard['iddashboard']; $login = $dashboard['login']; $layout = $dashboard['layout']; $layout = html_entity_decode($layout); $layout = str_replace("\\\"", "\"", $layout); $migrations[] = $this->migration->db->boundSql($updateQuery, array($layout, $idDashboard, $login)); } $updater->executeMigrations(__FILE__, $migrations); $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); } catch (\Exception $e) { } }