Estoy tratando de agregar una nueva columna a la tabla existente en 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();
}
}
Configuración de bin bin / magento: actualización
No pasa nada
Upd 1.
Si entiendo claramente el objetivo, InstallSchema se ejecuta solo cuando no hay valores en la tabla de configuración. Si su módulo ya está instalado en el sistema, debe realizar cambios en UpgradeSchema. Eso porque mi archivo no se ejecutó. Cuando le cambié el nombre para actualizar y hacer los cambios necesarios, todo comenzó a funcionar correctamente
fuente
Elimine la entrada del módulo de la tabla 'setup_module' y luego ejecute el comando php bin / magento setup: upgrade. Funcionará.
fuente
puede crear un script y en su carpeta dbscripts y ejecutar este archivo desde la terminal o el navegador web.
por ejemplo, guarde el archivo y
pub/dbscripts/filename.php
pegue este código y cámbielo de acuerdo con sus requisitosejecuta este archivo desde el navegador como
fuente