Magento2 setup not creating table
-
03-10-2020 - |
Вопрос
I have used setup to create table but script is not creating the table. I have also removed the entry from setup_module
table but still, it didn't work.
InstallSchema.php
<?php
namespace Vendor\Module\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();
/**
* Create table 'rentals'
*/
$table = $installer->getConnection()->newTable(
$installer->getTable('rentals'))
->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],
'Name'
)->addColumn(
'phone',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '0'],
'Phone'
)->addColumn(
'email',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Email'
)->addColumn(
'address',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Address'
)->addColumn(
'sku',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Sku'
)->addColumn(
'qty',
\Magento\Framework\DB\Ddl\Table::TYPE_Integer,
null,
['nullable' => false],
'Qty'
)->setComment(
'rentals'
);
$installer->getConnection()->createTable($table);
$installer->endSetup();
}
}
Решение
Note:: Delete module entry from tablesetup_module
After testing the code i found out there were two error TYPE_Integer
and TYPE_INTEGER
tested code and workeing
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Namespace\Modulename\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
//use Magento\Framework\DB\Adapter\AdapterInterface;
/**
* @codeCoverageIgnore
*/
class InstallSchema implements InstallSchemaInterface
{
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$table = $installer->getConnection()->newTable(
$installer->getTable('rentals'))
->addColumn(
'id',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
'Id'
)->addColumn(
'name',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
['nullable' => false],
'Name'
)->addColumn(
'phone',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
['nullable' => false, 'default' => '0'],
'Phone'
)->addColumn(
'email',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Email'
)->addColumn(
'address',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Address'
)->addColumn(
'sku',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
[],
'Sku'
)->addColumn(
'qty',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['nullable' => false],
'Qty'
)->setComment(
'rentals'
);
$installer->getConnection()->createTable($table);
$installer->endSetup();
}
}
Не связан с magento.stackexchange