Files
ltsecurityinc/app/code/Nwdthemes/Revslider/Setup/UpgradeSchema.php
T

137 lines
5.7 KiB
PHP
Executable File

<?php
namespace Nwdthemes\Revslider\Setup;
use Magento\Framework\DB\Adapter\AdapterInterface;
use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Nwdthemes\Revslider\Helper\Data;
/**
* @codeCoverageIgnore
*/
class UpgradeSchema implements UpgradeSchemaInterface {
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context) {
if ($context->getVersion()) {
$setup->startSetup();
$connection = $setup->getConnection();
if (version_compare($context->getVersion(), '5.4.5') < 0) {
$indexesToAdd = array(
'nwdthemes_revslider_backup' => array('slide_id', 'slider_id'),
'nwdthemes_revslider_navigations' => array('handle'),
'nwdthemes_revslider_options' => array('handle'),
'nwdthemes_revslider_slides' => array('slider_id'),
'nwdthemes_revslider_static_slides' => array('slider_id')
);
foreach ($indexesToAdd as $tableName => $indexNames) {
$table = $setup->getTable($tableName);
$indexesList = $connection->getIndexList($table);
foreach ($indexNames as $indexName) {
if ( ! isset($indexesList[strtoupper($indexName)])) {
$connection->addIndex(
$table,
$indexName,
$indexName
);
}
}
}
}
if (version_compare($context->getVersion(), '5.4.6.2') < 0) {
$setup->run("ALTER TABLE `{$setup->getTable('nwdthemes_revslider_css')}`
CHANGE `params` `params` longtext NOT NULL AFTER `hover`;");
$setup->run("ALTER TABLE `{$setup->getTable('nwdthemes_revslider_navigations')}`
CHANGE `css` `css` longtext NOT NULL AFTER `handle`,
CHANGE `markup` `markup` longtext NOT NULL AFTER `css`,
CHANGE `settings` `settings` longtext NULL AFTER `markup`;");
$setup->run("ALTER TABLE `{$setup->getTable('nwdthemes_revslider_sliders')}`
CHANGE `settings` `settings` text NULL DEFAULT '' AFTER `params`;");
}
if (version_compare($context->getVersion(), '5.4.8.3') < 0) {
$setup->run("ALTER TABLE `{$setup->getTable('nwdthemes_revslider_sliders')}`
CHANGE `title` `title` varchar(255) NOT NULL AFTER `id`,
CHANGE `alias` `alias` varchar(255) NULL AFTER `title`;");
}
if (version_compare($context->getVersion(), '6.1.1') < 0) {
$setup->run("ALTER TABLE `{$setup->getTable('nwdthemes_revslider_navigations')}`
ADD `type` varchar(191) NOT NULL;");
}
if (version_compare($context->getVersion(), '6.5.3') < 0) {
$indexesToAdd = array(
'nwdthemes_revslider_css' => ['handle_index' => ['field' => 'handle', 'size' => 64]],
'nwdthemes_revslider_sliders' => ['type_index' => ['field' => 'type', 'size' => 8]],
'nwdthemes_revslider_slides' => ['slider_id_index' => ['field' => 'slider_id']],
'nwdthemes_revslider_static_slides' => ['slider_id_index' => ['field' => 'slider_id']]
);
foreach ($indexesToAdd as $tableName => $indexes) {
$table = $setup->getTable($tableName);
$indexesList = $connection->getIndexList($table);
foreach ($indexes as $indexName => $index) {
if ( ! isset($indexesList[strtoupper($indexName)])) {
$size = isset($index['size']) ? "({$index['size']})" : '';
$setup->run("ALTER TABLE `$table` ADD KEY `$indexName` (`{$index['field']}`$size);");
}
}
}
}
if (version_compare($context->getVersion(), '6.6.7') < 0) {
$tablesToModify = [
'nwdthemes_revslider_css',
'nwdthemes_revslider_animations',
'nwdthemes_revslider_navigations',
'nwdthemes_revslider_sliders',
'nwdthemes_revslider_slides',
'nwdthemes_revslider_static_slides'
];
foreach ($tablesToModify as $tableName) {
$table = $setup->getTable($tableName);
$indexesList = $connection->getIndexList($table);
try {
if (isset($indexesList['ID'])) {
$connection->dropIndex($table, 'id');
}
if (! isset($indexesList['PRIMARY'])) {
$connection->addIndex($table, 'id', 'id', AdapterInterface::INDEX_TYPE_PRIMARY);
}
} catch (\Exception $e) {
Data::log('6.6.7 Scheme Upgrade Error', $tableName, $e->getMessage());
}
}
}
$setup->endSetup();
}
}
}