"Fossies" - the Fresh Open Source Software Archive

Member "matomo/core/Updates/0.6.3.php" (3 Aug 2022, 1512 Bytes) of package /linux/www/matomo-4.11.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 <?php
    2 /**
    3  * Matomo - free/libre analytics platform
    4  *
    5  * @link https://matomo.org
    6  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    7  *
    8  */
    9 
   10 namespace Piwik\Updates;
   11 
   12 use Piwik\Config;
   13 use Piwik\Updater;
   14 use Piwik\Updates;
   15 use Piwik\Updater\Migration\Factory as MigrationFactory;
   16 
   17 /**
   18  */
   19 class Updates_0_6_3 extends Updates
   20 {
   21     /**
   22      * @var MigrationFactory
   23      */
   24     private $migration;
   25 
   26     public function __construct(MigrationFactory $factory)
   27     {
   28         $this->migration = $factory;
   29     }
   30 
   31     public function getMigrations(Updater $updater)
   32     {
   33         return array(
   34             $this->migration->db->changeColumnType('log_visit', 'location_ip', 'INT UNSIGNED NOT NULL'),
   35             $this->migration->db->changeColumnType('logger_api_call', 'caller_ip', 'INT UNSIGNED')->addErrorCodeToIgnore(Updater\Migration\Db::ERROR_CODE_TABLE_NOT_EXISTS),
   36         );
   37     }
   38 
   39     public function doUpdate(Updater $updater)
   40     {
   41         $config = Config::getInstance();
   42         $dbInfos = $config->database;
   43         if (!isset($dbInfos['schema'])) {
   44             try {
   45                 if (is_writable(Config::getLocalConfigPath())) {
   46                     $config->database = $dbInfos;
   47                     $config->forceSave();
   48                 } else {
   49                     throw new \Exception('mandatory update failed');
   50                 }
   51             } catch (\Exception $e) {
   52             }
   53         }
   54 
   55         $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
   56     }
   57 }