Kategorieattribut entfernen

8

Ich habe 2 Kategorieattribute mithilfe eines Moduls mit der Datei mysql4-install-0.1.0.phpin einem SQL-Ordner eingefügt:

$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();

Wie kann ich sie jetzt löschen? Ich habe versucht, dies in die SQL-Datei einzufügen, wie in anderen Antworten vorgeschlagen:

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

Aber nichts passiert. Soll ich ein anderes Modul erstellen?

Claudiu Creanga
quelle

Antworten:

14

Sie müssen ein anderes Upgrade-Skript erstellen.
Wenn das Installationsskript die Version enthält, 0.1.0erstellen Sie die Datei upgrade-0.1.0-0.1.1.phpmit folgendem Inhalt:

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

Gehen Sie dann zu config.xmlund ändern Sie das versionTag von 0.1.0zu 0.1.1.

Leeren Sie den Cache und aktualisieren Sie jede Seite.

Als Nebenknoten ... nicht $installer->startSetup();in Installations- / Upgrade-Skripten verwenden, die Daten entfernen. Wenn Sie es aufrufen, werden die Fremdschlüsselprüfungen deaktiviert, und möglicherweise werden Zombiedaten in Ihrer Datenbank angezeigt.

Marius
quelle
Dies funktionierte einwandfrei bei einer Version 1.9. Aber ich muss es auch auf einer Magento-Version 1.5 machen und es löscht das Feld nicht aus dem Backend. Cache natürlich gelöscht. Könnte es eine Konfiguration sein, die dies blockiert? oder etwas spezifisches für 1.5?
Claudiu Creanga