Я хочу удалить неиспользуемые атрибуты EAV непосредственно из базы данных, прежде чем перенести магазин в живую Атрибуты можно найти в eav_attribute
таблице. Могу ли я удалить атрибуты из этой таблицы? Это безопасно? Или мне также нужно редактировать другие таблицы EAV?
28
$installer->removeAttribute('catalog_product', 'my_attribute1');
или$installer->removeAttribute('catalog_category', 'my_attribute2');
есть ли способ использовать этот код в отдельном файле? Я хотел бы, чтобы поместить файл в корневой папке (где Magento - хindex.php
), так что можно было бы назвать сценарий в веб - браузереexample.com/delete_attributes.php/
. Можете ли вы указать мне правильное направление?catalog/setup
сcustomer/setup
,catalog_setup
сcustomer_setup
иcatalog_product
сcustomer
.Первое правило Magento: никогда не редактируйте базу данных напрямую.
Я признаю, что неоднократно нарушал это правило, так что ...
вы можете удалить атрибуты из
eav_attribute
, ограниченияON DELETE CASCADE
должны очистить остальные таблицы.Но я все еще думаю, что вы должны идти чистым путем:
Это не должно занять много времени, и вы будете чувствовать себя в мире с самим собой, потому что вы не нарушали правила.
Не важно, какой метод вы выберете, но резервное копирование вашей БД в обоих случаях.
источник
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "my_attribute";
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "some_attr_code";
это рабочее решение, я использовал его много раз.
Особенно, если вы удалите расширение, а Magento все еще захочет вызвать несуществующую модель атрибута.
источник