migration = $factory; } public function getMigrations(Updater $updater) { $migrations = []; $migrations[] = $this->migration->plugin->deactivate('ExampleTheme'); $channel = StaticContainer::get(ReleaseChannels::class)->getActiveReleaseChannel()->getId(); $isBeta = stripos($channel, 'beta') !== false; if ($isBeta) { $dates = ['2020-01-01', '2020-11-01', '2020-10-01']; foreach ($dates as $date) { $date = Date::factory($date); $numericTable = ArchiveTableCreator::getBlobTable($date); $blobTable = ArchiveTableCreator::getNumericTable($date); if (DbHelper::tableExists($blobTable) && DbHelper::tableExists($numericTable)) { $migrations[] = $this->migration->db->sql( "DELETE FROM `$blobTable` WHERE idarchive NOT IN (SELECT idarchive FROM `$numericTable`)", []); } } } return $migrations; } public function doUpdate(Updater $updater) { $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); } }