Supprimer l'attribut de catégorie

8

J'ai inséré 2 attributs de catégorie en utilisant un module avec le fichier mysql4-install-0.1.0.phpdans un dossier 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();

Comment puis-je les supprimer maintenant. J'ai essayé d'insérer cela dans le fichier sql, comme suggéré dans d'autres réponses:

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

Mais rien ne se passe. Dois-je créer un autre module?

Claudiu Creanga
la source

Réponses:

14

Vous devez créer un script de mise à niveau différent.
Si le script d'installation a la version, 0.1.0créez le fichier upgrade-0.1.0-0.1.1.phpavec ce contenu:

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

Ensuite, accédez à config.xmlet modifiez la versionbalise de 0.1.0à 0.1.1.

Videz le cache et actualisez n'importe quelle page.

En tant que nœud secondaire ... ne pas utiliser $installer->startSetup();dans les scripts d'installation / mise à niveau qui suppriment des données. L'appeler, désactive les vérifications de clé étrangère et vous pourriez vous retrouver avec des données zombies dans votre base de données.

Marius
la source
Cela fonctionnait parfaitement sur une version 1.9. Mais je dois aussi le faire sur une version 1.5 de magento et cela ne supprime pas le champ du backend. Cache bien sûr supprimé. Serait-ce une configuration qui bloque cela? ou quelque chose de spécifique à 1.5?
Claudiu Creanga