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