* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ namespace PrestaShop\Module\AutoUpgrade\TaskRunner\Upgrade; use PrestaShop\Module\AutoUpgrade\TaskRunner\AbstractTask; use PrestaShop\Module\AutoUpgrade\UpgradeException; use PrestaShop\Module\AutoUpgrade\UpgradeTools\CoreUpgrader\CoreUpgrader16; use PrestaShop\Module\AutoUpgrade\UpgradeTools\CoreUpgrader\CoreUpgrader17; use PrestaShop\Module\AutoUpgrade\UpgradeTools\SettingsFileWriter; class UpgradeDb extends AbstractTask { public function run() { try { $this->getCoreUpgrader()->doUpgrade(); } catch (UpgradeException $e) { $this->next = 'error'; $this->error = true; foreach ($e->getQuickInfos() as $log) { $this->logger->debug($log); } $this->logger->error($this->translator->trans('Error during database upgrade. You may need to restore your database.', array(), 'Modules.Autoupgrade.Admin')); $this->logger->error($e->getMessage()); return false; } $this->next = 'upgradeModules'; $this->stepDone = true; $this->logger->info($this->translator->trans('Database upgraded. Now upgrading your Addons modules...', array(), 'Modules.Autoupgrade.Admin')); return true; } public function getCoreUpgrader() { if (version_compare($this->container->getState()->getInstallVersion(), '1.7.0.0', '<=')) { return new CoreUpgrader16($this->container, $this->logger); } return new CoreUpgrader17($this->container, $this->logger); } public function init() { $this->container->getCacheCleaner()->cleanFolders(); // Migrating settings file $this->container->initPrestaShopAutoloader(); (new SettingsFileWriter($this->translator))->migrateSettingsFile($this->logger); parent::init(); } }