What is the correct way to completely remove category attributes from the database?
Attributes were added this way using setup script:
$setup->addAttribute('catalog_category', 'seo_text', array(
'group' => 'General',
'label' => 'Additional Text',
'type' => 'text',
'input' => 'textarea',
'backend' => '',
'frontend' => '',
'visible' => true,
'required' => false,
'searchable' => false,
'user_defined' => true,
'visible_on_front' => true,
'wysiwyg_enabled' => false,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE
));
$setup->addAttribute('catalog_category', 'cat_icon', array(
'group' => 'General',
'label' => 'Category icon',
'type' => 'varchar',
'input' => 'select',
'source' => 'categoryseo/source_ico',
'backend' => '',
'frontend' => '',
'visible' => true,
'required' => false,
'searchable' => false,
'user_defined' => true,
'visible_on_front' => true,
'wysiwyg_enabled' => false,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE
));
Later these attributes were removed in another setup script, I used the standard code which can be found in many tutorials:
$setup = $this;
$setup->startSetup();
$setup->removeAttribute('catalog_category', 'seo_text');
$setup->removeAttribute('catalog_category', 'cat_icon');
$setup->endSetup();
This deleted the attributes from my categories. I also checked in the database and attributes were also removed from the table eav_attribute
.
But data of these attributes is still stored in other tables. E.g. in table catalog_category_entity_varchar
there is still info about attribute "cat_icon" for many categories.
Shouldn't all this data be automatically removed when I delete the attributes with $setup->removeAttribute(...)
method? Does it mean that I have some errors in my Magento so Magento doesn't fully remove the attribute data?
Or did I just delete the attributes incorrectly? If yes, then how to do it properly? How to delete eav attributes and all the data associated with deleted attributes?