Atributo remover categoria

8

Eu inseri 2 atributos de categoria usando um módulo com o arquivo mysql4-install-0.1.0.phpem uma pasta sql:

$installer = $this;

$installer->startSetup();

$installer->addAttribute('catalog_category', 'short_description', array(
    'type'          => 'text',
    'label'         => 'Short Description',
    'input'         => 'textarea',
    'group'         => 'General',
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'       => true,
    'required'      => false
));
$installer->addAttribute('catalog_category', 'static_block', array(
    'type'          => 'text',
    'label'         => 'Brand',
    'input'         => 'text',
    'group'         => 'General',
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'       => true,
    'required'      => false
));

$this->endSetup();

Como posso excluí-los agora. Tentei inserir isso no arquivo sql, conforme sugerido em outras respostas:

$installer = $this;
$installer->startSetup();
$installer->removeAttribute('catalog_category', 'short_description');
$installer->removeAttribute('catalog_category', 'static_block');
$installer->endSetup();

Mas nada acontece. Devo criar outro módulo?

Claudiu Creanga
fonte

Respostas:

14

Você precisa criar um script de atualização diferente.
Se o script de instalação tiver a versão, 0.1.0crie o arquivo upgrade-0.1.0-0.1.1.phpcom este conteúdo:

$installer = $this;
$installer->removeAttribute('catalog_category', 'short_description');
$installer->removeAttribute('catalog_category', 'static_block');

Em seguida, vá para config.xmle altere a versiontag de 0.1.0para 0.1.1.

Limpe o cache e atualize qualquer página.

Como um nó lateral ... não use $installer->startSetup();em scripts de instalação / atualização que removem dados. Chamando isso, desativa as verificações de chave estrangeira e você pode acabar com dados de zumbis no seu banco de dados.

Marius
fonte
Isso funcionou perfeitamente em uma versão 1.9. Mas eu tenho que fazê-lo em uma versão 1.5 do magento também e não exclui o campo do back-end. Cache excluído, é claro. Poderia ser uma configuração que está bloqueando isso? ou algo específico para 1,5?
Claudiu Creanga