getConnection(); $installer->startSetup(); /** * Rename/Create table 'variable' */ $variableTableName = $installer->getTable('variable'); $coreVariableTableName = $installer->getTable('core_variable'); if ($installer->tableExists('core_variable')) { $connection->renameTable($coreVariableTableName, $variableTableName); } else { $table = $connection->newTable( $variableTableName )->addColumn( 'variable_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Variable Id' )->addColumn( 'code', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 255, [], 'Variable Code' )->addColumn( 'name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 255, [], 'Variable Name' )->addIndex( $installer->getIdxName( 'variable', ['code'], \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE ), ['code'], ['type' => \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE] )->setComment( 'Variables' ); $connection->createTable($table); } /** * Rename/Create table 'variable_value' */ $variableValueTableName = $installer->getTable('variable_value'); $coreVariableValueTableName = $installer->getTable('core_variable_value'); if ($installer->tableExists('core_variable_value')) { $connection->renameTable($coreVariableValueTableName, $variableValueTableName); $oldForeignKeys = $connection->getForeignKeys($variableValueTableName); foreach ($oldForeignKeys as $foreignKey) { $connection->dropForeignKey($variableValueTableName, $foreignKey['FK_NAME']); } } else { $table = $connection->newTable( $variableValueTableName )->addColumn( 'value_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Variable Value Id' )->addColumn( 'variable_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['unsigned' => true, 'nullable' => false, 'default' => '0'], 'Variable Id' )->addColumn( 'store_id', \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT, null, ['unsigned' => true, 'nullable' => false, 'default' => '0'], 'Store Id' )->addColumn( 'plain_value', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, '64k', [], 'Plain Text Value' )->addColumn( 'html_value', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, '64k', [], 'Html Value' )->addIndex( $installer->getIdxName( 'variable_value', ['variable_id', 'store_id'], \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE ), ['variable_id', 'store_id'], ['type' => \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE] )->addIndex( $installer->getIdxName('variable_value', ['store_id']), ['store_id'] )->setComment( 'Variable Value' ); $connection->createTable($table); } $connection->addForeignKey( $installer->getFkName('variable_value', 'store_id', 'store', 'store_id'), $variableValueTableName, 'store_id', $installer->getTable('store'), 'store_id', \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE ); $connection->addForeignKey( $installer->getFkName('variable_value', 'variable_id', 'variable', 'variable_id'), $variableValueTableName, 'variable_id', $installer->getTable('variable'), 'variable_id', \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE ); $installer->endSetup(); } }