Ich versuche, eine neue Spalte zu einer vorhandenen Tabelle in magento2 hinzuzufügen
<?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 Setup: Upgrade
Nichts passiert
Update 1.
Wenn ich das Ziel klar verstehe, wird InstallSchema nur ausgeführt, wenn die Setup-Tabelle keine Werte enthält. Wenn Ihr Modul bereits im System installiert ist, müssen Sie Änderungen in UpgradeSchema vornehmen. Das liegt daran, dass meine Datei nicht ausgeführt wurde. Als ich es umbenannte, um ein Upgrade durchzuführen und die erforderlichen Änderungen vorzunehmen, funktionierte alles ordnungsgemäß
quelle
Löschen Sie den Eintrag des Moduls aus der Tabelle 'setup_module' und führen Sie den Befehl php bin / magento setup: upgrade aus. Es wird klappen.
quelle
Sie können ein Skript und in Ihrem dbscripts-Ordner erstellen und diese Datei über das Terminal oder den Webbrowser ausführen.
Speichern Sie beispielsweise die Datei,
pub/dbscripts/filename.php
fügen Sie diesen Code ein und ändern Sie ihn entsprechend Ihren AnforderungenFühren Sie diese Datei wie im Browser aus
quelle