Magento 2.3.1
После внесения исправления данных @ в следующем месте
vendor / ModuleName / Setup / Patch / Data / AddMyColumnPatch.php
приведенный ниже код дляAddMyColumnPatch.php.Когда я запускаю bin / magento setup: обновить, чтобы установить этот патч, я получаю следующую ошибку в cli.
Операторы DDL не допускаются в транзакциях
Я использовал следующеефайл в качестве ссылки для добавления столбца в мою таблицу с помощью исправления данных.
vendor / magento / module-quote / Setup / Patch / Data / InstallEntityTypes.php Следуйте строкам от 47 до 65
Мой код AddMyColumnPatch.php:
<?php
namespace Vendor\ModuleName\Setup\Patch\Data;
use Magento\Framework\Setup\Patch\DataPatchInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\Patch\PatchRevertableInterface;
use Magento\Quote\Setup\QuoteSetupFactory;
use Magento\Sales\Setup\SalesSetupFactory;
use Psr\Log\LoggerInterface;
/**
*/
class AddressSuburbPatch implements DataPatchInterface, PatchRevertableInterface
{
/**
* Attribute Code of the Custom Attribute
*/
const CUSTOM_ATTRIBUTE_CODE = 'my_column';
/**
* @var \Magento\Framework\Setup\ModuleDataSetupInterface
*/
private $moduleDataSetup;
/**
* @var \Magento\Quote\Setup\QuoteSetupFactory
*/
private $quoteSetupFactory;
/**
* @var Magento\Sales\Setup\SalesSetupFactory
*/
private $salesSetupFactory;
/**
* @var \Psr\Log\LoggerInterface
*/
private $logger;
/**
* @param \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup,
QuoteSetupFactory $quoteSetupFactory,
SalesSetupFactory $salesSetupFactory,
LoggerInterface $logger
)
{
$this->moduleDataSetup = $moduleDataSetup;
$this->quoteSetupFactory = $quoteSetupFactory;
$this->salesSetupFactory = $salesSetupFactory;
$this->logger = $logger;
}
/**
* {@inheritdoc}
*/
public function apply()
{
$this->moduleDataSetup->getConnection()->startSetup();
$this->logger->debug('DDL Statements error');
$quoteSetup = $this->quoteSetupFactory->create(['setup' => $this->moduleDataSetup]);
$quoteSetup->addAttribute('quote_address', self::CUSTOM_ATTRIBUTE_CODE, ['type' => 'text']);
$salesSetup = $this->salesSetupFactory->create(['setup' => $this->moduleDataSetup]);
$salesSetup->addAttribute('order_address', self::CUSTOM_ATTRIBUTE_CODE, ['type' => 'text']);
$this->logger->debug('Script working');
$this->moduleDataSetup->getConnection()->endSetup();
}
/**
* {@inheritdoc}
*/
public static function getDependencies()
{
return [
];
}
public function revert()
{
$this->moduleDataSetup->getConnection()->startSetup();
$this->moduleDataSetup->getConnection()->endSetup();
}
/**
* {@inheritdoc}
*/
public function getAliases()
{
return [];
}
}