Desejo remover atributos EAV não utilizados diretamente do banco de dados antes de mover minha loja ao vivo. Os atributos podem ser encontrados na eav_attribute
tabela. Posso excluir atributos desta tabela? É seguro? Ou também preciso editar outras tabelas EAV?
attributes
database
custom-options
eav
zitix
fonte
fonte
$installer->removeAttribute('catalog_product', 'my_attribute1');
ou$installer->removeAttribute('catalog_category', 'my_attribute2');
Mas existe uma maneira de usar esse código em um arquivo separado? Eu gostaria de colocar o arquivo na pasta raiz (onde de Magentoindex.php
), de modo que seria possível chamar o script no navegador da Web:example.com/delete_attributes.php/
. Você pode me apontar na direção certa?catalog/setup
comcustomer/setup
,catalog_setup
comcustomer_setup
ecatalog_product
comcustomer
.A primeira regra do Magento é: nunca edite o banco de dados diretamente.
Admito que quebrei essa regra em várias ocasiões, então ...
você pode excluir os atributos de
eav_attribute
, as restrições comON DELETE CASCADE
devem limpar o restante das tabelas.Mas ainda acho que você deve seguir o caminho limpo:
Não deve demorar muito e você se sentirá em paz consigo mesmo porque não violou as regras.
Não é importante qual método você escolhe, mas sim o backup do seu banco de dados, nos dois casos.
fonte
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "my_attribute";
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "some_attr_code";
é uma solução funcional , eu a usei várias vezes.
Especialmente se você remover a extensão e o Magento ainda quiser chamar um modelo de atributo inexistente
fonte