1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CoreAdminHome\Commands;
use Piwik\Common;
use Piwik\Container\StaticContainer;
use Piwik\Plugin\ConsoleCommand;
use Piwik\Updater;
use Piwik\Updater\Migration\Factory as MigrationFactory;
/**
* Command to purge annotations from option table after migrating them to a separate db table.
*/
class PurgeLegacyAnnotations extends ConsoleCommand
{
protected function configure()
{
$this->setName('core:matomo550-purge-legacy-annotations');
$this->setDescription(
'Only needed for Matomo 5.5.0-b2 upgrade. ' .
'Purge legacy annotations from option table after migrating them to a separate annotations table.'
);
}
protected function doExecute(): int
{
self::purge();
$this->getOutput()->writeln('Done');
return self::SUCCESS;
}
public static function purge(): void
{
$migration = StaticContainer::get(MigrationFactory::class);
$migrations = [];
// remove legacy option table values
$migrations[] = $migration->db->sql(self::removeLegacyValuesFromOptionsTableSql());
$updater = StaticContainer::get(Updater::class);
$updater->executeMigrations(__FILE__, $migrations);
}
private static function removeLegacyValuesFromOptionsTableSql(): string
{
return sprintf("DELETE FROM `%s` WHERE `option_name` LIKE '%%_annotations'", Common::prefixTable('option'));
}
}
|