カテゴリ属性を削除


8

mysql4-install-0.1.0.phpsqlフォルダー内のファイルを含むモジュールを使用して、2つのカテゴリー属性を挿入しました。

$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に固有の何か?
Claudiu Creanga
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.