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?

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.