Magento no se ejecutará mi script de instalación del cliente
-
16-10-2019 - |
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 |
+-------------------------------------+---------+
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