Answers:
请参阅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
)中,以便可以在Web浏览器中调用该脚本:example.com/delete_attributes.php/
。你能为我指出正确的方向吗?