<?php namespace Magneto\BookFreeLayout\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
class InstallSchema implements InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup,
ModuleContextInterface $context)
{
$newsTableName = $setup->getTable('magneto_book_free_layout');
if($setup->getConnection()->isTableExists($newsTableName) != true) {
$newsTable = $setup->getConnection()
->newTable($newsTableName)
->addColumn(
'id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
'id'
)
->addColumn(
'name',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => ''],
'name'
)
->addColumn(
'email',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false, 'default' => ''],
'email'
)
->addColumn(
'phoneno',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false, 'unsigned' => true],
'phoneno'
)
->addColumn(
'heigth',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false],
'heigth'
)
->addColumn(
'width',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false],
'width'
)
->addColumn(
'image',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false],
'image'
)
->addColumn(
'entity_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['nullable' => false],
'entity_id'
)
->addColumn(
'status',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['nullable' => false,'default' => 0],
'status'
)
->addForeignKey(
$installer->getFkName(
'magneto_book_free_layout',
'entity_id',
'catalog_product_entity',
'entity_id'
),
'entity_id',
$installer->getTable('catalog_product_entity'),
'entity_id',
\Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
)
->setComment("News Table");
$setup->getConnection()->createTable($newsTable);
}
}
}
Error Adding Foreign Key Using Install Schema in Magento 2
databaseforeign keyinstall-scriptmagento2upgradeschema
Best Answer
Your entity_id column should look like this.