Câu trả lời:
Trong tập lệnh thiết lập của bạn, chúng tôi có thể sử dụng dropColumn
:
$setup->getConnection()->dropColumn($setup->getTable('your_table'), 'your_column');
Đây là giải pháp của tôi, có thể tốt cho việc giới thiệu cho người khác.
Tôi đã tạo Tohq\Customer\Setup\UpgradeSchema.php
tập tin:
<?php
namespace Tohq\Customer\Setup;
use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
/**
* @codeCoverageIgnore
*/
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
// Version of module in setup table is less then the give value.
if (version_compare($context->getVersion(), '0.1.4', '<')) {
// get table customer_entity
$eavTable = $setup->getTable('customer_entity');
// Check if the table already exists
if ($setup->getConnection()->isTableExists($eavTable) == true) {
$connection = $setup->getConnection();
// del_flg = column name which you want to delete
$connection->dropColumn($eavTable, 'del_flg');
}
}
}
}
Bạn có thể thử hàm dropColumn () đơn giản này trong tập lệnh cài đặt của bạn .
$this->startSetup();
//example:
$this->getConnection()->dropColumn($this->getTable('your_table_definition'), 'your column name', $schemaName = null)
$this->endSetup();
Đường dẫn: Magento22 / app / code / Rbj / Đào tạo / etc / module.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Rbj_Training" setup_version="1.0.2"/>
</config>
Tạo tập tin Nâng cấpSchema.php trong thư mục Cài đặt trong mô-đun của bạn.
Đường dẫn: Magento22 / ứng dụng / mã / Rbj / Đào tạo / Cài đặt / Nâng cấpSchema.php
<?php
namespace Rbj\Training\Setup;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UpgradeSchemaInterface;
/**
* Upgrade the Sales_Order Table to remove extra field
*/
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.2', '<')) {
$setup->getConnection()->dropColumn($setup->getTable('sales_order'), 'gst');
}
$setup->endSetup();
}
}
Tôi hy vọng nó hoạt động mãi mãi
UpgradeSchema.php
là một giải pháp tốt hơn và sạch hơn