Saya mencoba menambahkan kolom baru ke tabel yang ada di 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();
}
}
setup php bin / magento: tingkatkan
Tidak ada yang terjadi
Pembaruan 1.
Jika saya memahami tujuan dengan jelas, InstallSchema dijalankan hanya ketika tidak ada nilai di tabel pengaturan. Jika modul Anda sudah diinstal di sistem - Anda perlu melakukan perubahan apa pun di UpgradeSchema. Itu karena file saya tidak dieksekusi. Ketika saya menamainya untuk meningkatkan dan membuat perubahan yang diperlukan - semuanya mulai berfungsi dengan baik
sumber
Hapus entri modul dari tabel 'setup_module' lalu jalankan perintah php bin / magento setup: upgrade. Itu akan berhasil.
sumber
Anda dapat membuat skrip dan di folder dbscripts Anda dan menjalankan file ini dari terminal atau browser web.
mis. simpan file dalam
pub/dbscripts/filename.php
tempel kode ini dan ubah sesuai kebutuhan Andajalankan file ini dari browser seperti
sumber