Pregunta

Bueno por lo que estoy tratando de agregar un campo al registro con mi módulo. Obviamente tengo que añadir un atributo. Así que mi "script de instalación" es en realidad una actualización a la entidad de cliente. Sin embargo, el módulo está activado y, sin embargo, cuando restauro la parte delantera no se ejecutará mi script de instalación. He puesto un troquel en la parte delantera para ver si es incluso golpeándola y no lo es.

He comprobado sobre otros 7 preguntas de desbordamiento de pila y cada uno de los errores era bastante evidente. Cosas como la configuración no coincide con la carpeta en la que se encontraba. Usando customer_setup como el nombre. Los errores en el archivo de configuración. Una y otra vez he mirado en mi código Y sé im falta algo pequeño. Algunos alguna parte errata ..... pero ive perdido demasiado tiempo, así que se lo entrego apagado a usted grandes personas.

Config.xml

<config>
    <modules>
        <BlizzardLabs_Customer>
            <version>0.1.0</version>
        </BlizzardLabs_Customer>
    </modules>
    <global>
        <fieldsets>
            <customer_account>
                <flavour>
                  <create>1</create>
                  <update>1</update>
                </flavour>
            </customer_account>
        </fieldsets>
        <resources>
            <blizzardlabs_customer_setup>
                <setup>
                    <module>BlizzardLabs_Customer</module>
                    <class>BlizzardLabs_Customer_Model_Entity_Setup</class>
                </setup>
            </blizzardlabs_customer_setup>
        </resources>
    </global>
</config>

BlizzardLabs / cliente / modelo / Entidad / setup.php

class BlizzardLabs_Customer_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setup {

  public function getDefaultEntities() {
    $entities = parent::getDefaultEntities();

    // Add flavour to customer attributes
    $entities['customer']['attributes']['flavour'] = array(
        'label' => 'Ice Cream Flavour',
        'visible' => true,
        'required' => true,
    );

    return $entities;
  }

}

BlizzardLabs / cliente / sql / blizzardlabs_customer_setup / MySQL4-instalación-0.1.0.php

Mage::log('Installing BlizzardLabs_Customer');

$installer = $this;
$installer->startSetup();
$installer->addAttribute('customer', 'flavour', array(
    'label' => 'Ice Cream Flavour',
    'type' => 'varchar',
    'input' => 'text',
    'visible' => true,
    'required' => true,
    'position' => 1,
));

$attrs = array('flavour');

foreach ($attrs as $item) {
  $attr = Mage::getSingleton('eav/config')->getAttribute('customer', $item);
  $attr->setData('used_in_forms', array('adminhtml_customer','customer_account_edit','customer_account_create'))->save();
}

$installer->endSetup();

echo "information added to database";

Actualización: Me disculpo por el error tipográfico. El guión está en blizzardlabs_customer_setup

Mesa code_resource:

+-------------------------------------+---------+
| code                                | version |
+-------------------------------------+---------+
| adminnotification_setup             | 1.0.0   |
| admin_setup                         | 0.7.1   |
| amazonpayments_setup                | 0.1.2   |
| api_setup                           | 0.8.1   |
| backup_setup                        | 0.7.0   |
| bundle_setup                        | 0.1.8   |
| catalogindex_setup                  | 0.7.10  |
| cataloginventory_setup              | 0.7.5   |
| catalogrule_setup                   | 0.7.7   |
| catalogsearch_setup                 | 0.7.6   |
| catalog_setup                       | 0.7.69  |
| checkout_setup                      | 0.9.3   |
| chronopay_setup                     | 0.1.0   |
| cms_setup                           | 0.7.8   |
| compiler_setup                      | 0.1.0   |
| contacts_setup                      | 0.8.0   |
| core_setup                          | 0.8.13  |
| cron_setup                          | 0.7.1   |
| customer_setup                      | 0.8.11  |
| cybermut_setup                      | 0.1.0   |
| cybersource_setup                   | 0.7.0   |
| dataflow_setup                      | 0.7.4   |
| directory_setup                     | 0.8.5   |
| downloadable_setup                  | 0.1.15  |
| eav_setup                           | 0.7.13  |
| enterprise_admingws_setup           | 0.0.1   |
| enterprise_catalogevent_setup       | 0.0.4   |
| enterprise_catalogpermissions_setup | 0.0.6   |
| enterprise_customerbalance_setup    | 0.0.10  |
| enterprise_enterprise_setup         | 0.0.1   |
| enterprise_giftcardaccount_setup    | 0.0.12  |
| enterprise_giftcard_setup           | 0.0.8   |
| enterprise_invitation_setup         | 0.0.3   |
| enterprise_logging_setup            | 0.1.8   |
| enterprise_pci_setup                | 0.0.3   |
| enterprise_staging_setup            | 0.1.10  |
| enterprise_websiterestriction_setup | 0.0.1   |
| eway_setup                          | 0.1.0   |
| flo2cash_setup                      | 0.1.1   |
| giftmessage_setup                   | 0.7.2   |
| googleanalytics_setup               | 0.1.0   |
| googlebase_setup                    | 0.1.1   |
| googlecheckout_setup                | 0.7.3   |
| googleoptimizer_setup               | 0.1.2   |
| ideal_setup                         | 0.1.0   |
| log_setup                           | 0.7.6   |
| newsletter_setup                    | 0.8.0   |
| oscommerce_setup                    | 0.8.10  |
| paybox_setup                        | 0.1.3   |
| paygate_setup                       | 0.7.0   |
| payment_setup                       | 0.7.0   |
| paypaluk_setup                      | 0.7.0   |
| paypal_setup                        | 0.7.2   |
| poll_setup                          | 0.7.2   |
| productalert_setup                  | 0.7.2   |
| protx_setup                         | 0.1.0   |
| rating_setup                        | 0.7.2   |
| reports_setup                       | 0.7.7   |
| review_setup                        | 0.7.4   |
| salesrule_setup                     | 0.7.7   |
| sales_setup                         | 0.9.38  |
| sendfriend_setup                    | 0.7.2   |
| shipping_setup                      | 0.7.0   |
| sitemap_setup                       | 0.7.2   |
| strikeiron_setup                    | 0.9.1   |
| tag_setup                           | 0.7.2   |
| tax_setup                           | 0.7.8   |
| usa_setup                           | 0.7.0   |
| weee_setup                          | 0.13    |
| wishlist_setup                      | 0.7.4   |
+-------------------------------------+---------+
¿Fue útil?

Solución

Creo que es necesario añadir el MySQL4-instalación-0.1.0.php dentro de una carpeta llamada blizzardlabs_customer_setup. Al igual que el nombre de la etiqueta XML dentro de la etiqueta <resources>. Por lo que la ruta debe ser BlizzardLabs/Customer/sql/blizzardlabs_customer_setup/mysql4-install-0.1.0.php. Antes de intentarlo de nuevo con la marca ruta modificada Seguro que elimina el registro de la tabla con el core_resource blizzardlabs_customer_setup código y borra la memoria caché.
Sin relación. Si se trabaja con Magento EE 1.12 se puede perder la mysql4 en el nombre de script de instalación. Puede que sea install-0.1.0.php. Pero no es tan importante. Funciona en ambos sentidos.

[EDIT]
He probado intentado ejecutar la secuencia de comandos. He creado los archivos como usted describió. La única cosa que estaba agregado al expediente de declaración módulo: app/etc/modules/BlizzardLabs_Customer.xml con este contenido

.
<?xml version="1.0"?>
<config>
    <modules>
        <BlizzardLabs_Customer>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Customer />
            </depends>
        </BlizzardLabs_Customer>
    </modules>
</config>

Y todo funcionó a la perfección. Asegúrese de que usted borrado la caché. Asegúrese de que los módulos locales no están deshabilitados (en app/etc/local.xml esta etiqueta se establece en false <disable_local_modules>false</disable_local_modules>). Esto es todo lo que puedo pensar.

Otros consejos

El pensamiento que debería hacer lo correcto y publicar esto. Al mirar en la tabla "core_resource" en la base de datos ya puedo ver una entrada customer_setup que es desde el núcleo de Magento.

Mi conjetura es que esto es por lo que no se puede utilizar blizzardlabs_customer_setup no tener nada que ver con 2 guiones bajos. Así que uno de los controles después de ejecutar la instalación si no puede verlo en "core_resource" mesa debe ser para asegurarse de que no ha utilizado todo lo que pueda contravenir con las entradas ya existentes, por ejemplo, anything_customer_setup_g

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top