2014-11-26 3 views
0

У нас есть атрибут, который был создан в предыдущем обновлении, который мы хотели бы удалить. Первоначально он был создан с помощью следующего сценария:Обновление данных Magento не будет выполнено

<?php 
    $installer = new Mage_Customer_Model_Entity_Setup('core_setup'); 

    $installer->startSetup(); 

    $vCustomerEntityType = $installer->getEntityTypeId('customer'); 
    $vCustAttributeSetId = $installer->getDefaultAttributeSetId($vCustomerEntityType); 
    $vCustAttributeGroupId = $installer->getDefaultAttributeGroupId($vCustomerEntityType, $vCustAttributeSetId); 

    $installer->addAttribute('customer', 'custom_id', array(
     'label' => 'Custom ID', 
     'input' => 'text', 
     'type' => 'varchar', 
     'forms' => array('adminhtml_customer'), 
     'required' => 0, 
     'user_defined' => 1, 
    )); 

    $installer->addAttributeToGroup($vCustomerEntityType, $vCustAttributeSetId, $vCustAttributeGroupId, 'custom_id', 0); 

    $oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'custom_id'); 
    $oAttribute->setData('used_in_forms', array('adminhtml_customer')); 
    $oAttribute->save(); 

    $installer->endSetup(); 

выше служил нам хорошо, но мы больше не нужен этот custom_id. Итак, я создал следующее обновление:

<?php 

    $installer = new Mage_Customer_Model_Entity_Setup('core_setup'); 

    $installer->startSetup(); 

    $vCustomerEntityType = $installer->getEntityTypeId('customer'); 
    $vCustomerCustomIdAttribute = $install->getAttribute($vCustomerEntityType, 'custom_id'); 

    $installer->removeAttribute($vCustomerEntityType, $vCustomerCustomIdAttribute); 

    $installer->endSetup(); 

откладывает это, и я полагаю, что это нужно просто удалить этот атрибут, но это не так. Я перехожу в раздел admin, и поле и данные все еще там. Я попытался очистить кран magento и даже зашел так далеко, чтобы вручную удалить его, чтобы заставить это работать безрезультатно. Я искал, но, похоже, не вижу, где моя проблема.

Также этот файл имеет имя mysql4-upgrade-0.1.22-0.1.23.php, и в настоящее время core_resource для этого показывает 0.1.22, поэтому он должен быть запущен. И, возможно, это так, и у меня есть еще одна проблема?

Может ли кто-нибудь указать мне, почему это может не работать или удалять эти данные?

+1

вы изменили '' в config.xml для '0.1.23'? – subroutines

ответ

0

Вы можете использовать это для атрибута удалить

$installer = $this; 
$installer->removeAttribute('customer', 'attribute_code_here'); 
Смежные вопросы