Відповіді:
Див 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/
. Чи можете ви вказати мене в правильному напрямку?