Удалить атрибут категории

8

Я вставил 2 атрибута категории, используя модуль с файлом mysql4-install-0.1.0.phpв папке 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();

Как я могу удалить их сейчас. Я попытался вставить это в файл sql, как предлагалось в других ответах:

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

Но ничего не происходит. Должен ли я создать еще один модуль?

Клаудиу Крянгэ
источник

Ответы:

14

Вам нужно создать другой скрипт обновления.
Если скрипт установки имеет версию, 0.1.0создайте файл upgrade-0.1.0-0.1.1.phpс таким содержимым:

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

Затем перейдите config.xmlи измените versionтег с 0.1.0на 0.1.1.

Очистите кеш и обновите любую страницу.

В качестве побочного узла ... не используйте $installer->startSetup();сценарии установки / обновления, которые удаляют данные. Вызов его отключает проверку внешнего ключа, и вы можете получить данные зомби в своей базе данных.

Мариус
источник
Это работало безупречно на версии 1.9. Но я должен сделать это и на magento версии 1.5, и это не удаляет поле из бэкэнда. Удалил кеш конечно. Может ли это быть конфигурация, которая блокирует это? или что то конкретное до 1.5?
Клавдиу Крянгэ,