Magento не будет запускать сценарий установки клиента
-
16-10-2019 - |
Вопрос
Итак, я пытаюсь добавить поле в регистрацию с моим модулем. Очевидно, я должен добавить атрибут. Таким образом, мой «установка сценария» на самом деле является просто обновлением для субъекта клиента. Тем не менее, модуль включен, и все же, когда я обновляю передний конец, он не запускает мой сценарий установки. Я положил кубик спереди, чтобы увидеть, ударил ли он даже его, а это нет.
Я проверил около 7 других вопросов переполнения стека, и каждая из ошибок была довольно вопиющей. Такие вещи, как конфигурация, не соответствующая папке, в которой он находился. Использование customer_setup в качестве имени. Ошибки в файле настройки. Снова и снова я смотрел на свой код, и я знаю, что упускаю что -то маленькое. Некоторая опечатка где -то ... но я сейчас потратил впустую слишком много времени, поэтому я передаю это вам, великим людям.
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/Customer/Model/Entity/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/Customer/SQL/Blizzardlabs_customer_setup/mysql4-install-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";
ОБНОВЛЕНИЕ: Прошу прощения за опечатку. Скрипт в Blizzardlabs_customer_setup
Таблица 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 |
+-------------------------------------+---------+
Решение
Я думаю, что вам нужно добавить MySQL4-Install-0.1.0.php в папку под названием blizzardlabs_customer_setup
. Анкет Точно так же, как имя вашего XML -тега внутри <resources>
ярлык. Так что путь должен быть BlizzardLabs/Customer/sql/blizzardlabs_customer_setup/mysql4-install-0.1.0.php
. Анкет Прежде чем попробовать его снова с помощью модифицированного пути, убедитесь, что вы удалите запись из таблицы core_resource
с кодом blizzardlabs_customer_setup
и очистить кеш.
Не по теме. Если вы работаете с Magento EE 1.12, вы можете потерять mysql4
В названии сценария установки. Ты это можешь install-0.1.0.php
. Анкет Но это не так важно. Это работает в обоих направлениях.
РЕДАКТИРОВАТЬ
Я проверил попытку запустить ваш сценарий. Я создал файлы, как вы описали. Единственное, что я добавил, был файл объявления модуля: app/etc/modules/BlizzardLabs_Customer.xml
с этим контентом.
<?xml version="1.0"?>
<config>
<modules>
<BlizzardLabs_Customer>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Customer />
</depends>
</BlizzardLabs_Customer>
</modules>
</config>
И все сработало отлично. Убедитесь, что вы очистили кеш. Убедитесь, что локальные модули не отключены (в app/etc/local.xml
Этот тег установлен на false <disable_local_modules>false</disable_local_modules>
) Это все, о чем я могу думать.
Другие советы
Думал, что я должен поступить правильно и опубликовать это. Посмотрев в таблице "core_resource" в базе данных, я уже вижу customer_setup
Вход, который из Magento Core.
Я предполагаю, что именно поэтому вы не можете использовать blizzardlabs_customer_setup
Не связано с 2 подчеркиванием. Таким образом, одна из проверок после запуска установки, если вы не видите ее в таблице "core_resource", чтобы гарантировать, что вы не использовали ничего, что могло бы противоречить уже существующим записям, например, anything_customer_setup
_грамм