<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogUrlRewrite\Setup; use Magento\Framework\Setup\InstallSchemaInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; /** * @codeCoverageIgnore */ class InstallSchema implements InstallSchemaInterface { /** * {@inheritdoc} */ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup(); $tableName = \Magento\CatalogUrlRewrite\Model\ResourceModel\Category\Product::TABLE_NAME; $table = $installer->getConnection() ->newTable($installer->getTable($tableName)) ->addColumn( 'url_rewrite_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['unsigned' => true, 'nullable' => false], 'url_rewrite_id' ) ->addColumn( 'category_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['unsigned' => true, 'nullable' => false], 'category_id' ) ->addColumn( 'product_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['unsigned' => true, 'nullable' => false], 'product_id' ) ->addIndex( $installer->getIdxName($tableName, ['category_id', 'product_id']), ['category_id', 'product_id'] ) ->addForeignKey( $installer->getFkName($tableName, 'product_id', 'catalog_product_entity', 'entity_id'), 'product_id', $installer->getTable('catalog_product_entity'), 'entity_id', \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE ) ->addForeignKey( $installer->getFkName($tableName, 'url_rewrite_id', 'url_rewrite', 'url_rewrite_id'), 'url_rewrite_id', $installer->getTable('url_rewrite'), 'url_rewrite_id', \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE ) ->setComment('url_rewrite_relation'); $installer->getConnection()->createTable($table); $installer->endSetup(); } }