Quiero eliminar los atributos EAV no utilizados directamente de la base de datos antes de mover mi tienda en vivo. Los atributos se pueden encontrar en la eav_attribute
tabla, ¿puedo eliminar los atributos de esta tabla? ¿Es seguro? ¿O también necesito editar otras tablas EAV?
28
$installer->removeAttribute('catalog_product', 'my_attribute1');
o ¿$installer->removeAttribute('catalog_category', 'my_attribute2');
Pero hay alguna manera de usar este código en un archivo separado? Me gustaría colocar el archivo en la carpeta raíz (donde de Magentoindex.php
), por lo que sería posible llamar al script en el navegador web:example.com/delete_attributes.php/
. ¿Me puede apuntar en la dirección correcta?catalog/setup
concustomer/setup
,catalog_setup
concustomer_setup
ycatalog_product
concustomer
.La primera regla de Magento es: nunca edite la base de datos directamente.
Admito que violé esta regla en numerosas ocasiones, así que ...
puedes eliminar los atributos
eav_attribute
, las restriccionesON DELETE CASCADE
deberían limpiar el resto de las tablas.Pero sigo pensando que deberías tomar el camino limpio:
No debería tomar mucho tiempo y te sentirás en paz contigo mismo porque no rompiste las reglas.
No es importante el método que elija, pero en ambos casos es una copia de seguridad de su base de datos.
fuente
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "my_attribute";
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "some_attr_code";
es una solución que funciona , la usé muchas veces.
Especialmente si elimina la extensión y Magento todavía quiere llamar al modelo de atributo inexistente
fuente