forked from matomo-org/matomo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refs matomo-org#4125 commit SQL Update file
- Loading branch information
Showing
1 changed file
with
77 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
<?php | ||
/** | ||
* Piwik - Open source web analytics | ||
* | ||
* @link http://piwik.org | ||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later | ||
* | ||
* @category Piwik | ||
* @package Piwik | ||
*/ | ||
use Piwik\Common; | ||
use Piwik\Updater; | ||
use Piwik\Updates; | ||
use Piwik\Db; | ||
|
||
/** | ||
* @package Updates | ||
*/ | ||
class Piwik_Updates_2_0_a13 extends Updates | ||
{ | ||
public static function getSql($schema = 'Myisam') | ||
{ | ||
// Renaming old archived records now that the plugin is called Referrers | ||
$sql = array(); | ||
$tables = \Piwik\DbHelper::getTablesInstalled(); | ||
foreach ($tables as $tableName) { | ||
if (strpos($tableName, 'archive_') !== false) { | ||
$sql['UPDATE ' . $tableName . ' SET `name`=REPLACE(`name`, \'Referers_\', \'Referrers_\') WHERE `name` LIKE \'Referers_%\''] = false; | ||
} | ||
} | ||
$errorCodeTableNotFound = '1146'; | ||
|
||
// Rename custom segments containing Referers segments | ||
$sql['UPDATE ' . Common::prefixTable('segment') . ' SET `definition`=REPLACE(`definition`, \'referer\', \'referrer\') WHERE `definition` LIKE \'%referer%\''] = $errorCodeTableNotFound; | ||
|
||
// Rename Referrers reports within scheduled reports | ||
$sql['UPDATE ' . Common::prefixTable('report') . ' SET `reports`=REPLACE(`reports`, \'Referer\', \'Referrer\') WHERE `reports` LIKE \'%Referer%\''] = $errorCodeTableNotFound; | ||
|
||
// Rename Referrers widgets in custom dashboards | ||
$sql['UPDATE ' . Common::prefixTable('user_dashboard') . ' SET `layout`=REPLACE(`layout`, \'Referer\', \'Referrer\') WHERE `layout` LIKE \'%Referer%\''] = $errorCodeTableNotFound; | ||
|
||
$sql['UPDATE ' . Common::prefixTable('option') . ' SET `option_name` = \'version_ScheduledReports\' WHERE `option_name` = \'version_PDFReports\' '] = false; | ||
|
||
return $sql; | ||
} | ||
|
||
public static function update() | ||
{ | ||
// delete schema version_ | ||
\Piwik\Option::getInstance()->delete('version_Referers'); | ||
|
||
Updater::updateDatabase(__FILE__, self::getSql()); | ||
\Piwik\PluginsManager::getInstance()->deactivatePlugin('Referers'); | ||
\Piwik\PluginsManager::getInstance()->deactivatePlugin('PDFReports'); | ||
|
||
// Deleting old plugins | ||
$obsoleteDirectories = array( | ||
PIWIK_INCLUDE_PATH . '/plugins/Referers', | ||
PIWIK_INCLUDE_PATH . '/plugins/PDFReports', | ||
); | ||
foreach ($obsoleteDirectories as $dir) { | ||
if (file_exists($dir)) { | ||
Filesystem::unlinkRecursive($dir, true); | ||
} | ||
} | ||
|
||
try { | ||
\Piwik\PluginsManager::getInstance()->activatePlugin('Referrers'); | ||
} catch(Exception $e) { | ||
} | ||
try { | ||
\Piwik\PluginsManager::getInstance()->activatePlugin('ScheduledReports'); | ||
} catch(Exception $e) { | ||
} | ||
|
||
} | ||
} |