magento2의 기존 테이블에 새 열을 추가하려고합니다.
<?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}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$eavTable = $installer->getTable('eav_attribute');
$columns = [
'my_column' => [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
'length' => '1',
'nullable' => false,
'comment' => 'Description of my column',
],
];
$connection = $installer->getConnection();
foreach ($columns as $name => $definition) {
$connection->addColumn($eavTable, $name, $definition);
}
$installer->endSetup();
}
}
PHP bin / magento 설정 : 업그레이드
아무 반응이 없습니다
Upd 1.
목표를 명확하게 이해하면 설치 테이블에 값이 없을 때만 InstallSchema가 실행됩니다. 모듈이 이미 시스템에 설치되어있는 경우 UpgradeSchema를 변경해야합니다. 내 파일이 실행되지 않았기 때문입니다. 업그레이드하고 필요한 변경을 위해 이름을 변경하면 모든 것이 올바르게 작동하기 시작했습니다.