2013-05-27 1 views
4

Итак, я пытаюсь запустить скрипт установки с моим модулем. (Magento 1,7) У меня есть это мои модули config.xmlMagento - установить скрипт не запущен (но запись правильно добавлена ​​в core_resource)

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Sulman_Custompermissions> 
      <version>1.0.0.0</version> 
     </Sulman_Custompermissions> 
    </modules> 

    <global> 
     <resources> 
      <mymodule_setup> 
       <setup> 
        <module>Sulman_Custompermissions</module> 
       </setup> 
      </mymodule_setup> 
     </resources> 
    </global> 
</config> 

Это моя структура файла для установки скрипта: /app/code/local/Sulman/Custompermissions/sql/mymodule_setup/install-1.0. 0.0.php

Тогда в моей установке-1.0.0.0.php скрипт просто запускает это:

die('here'); 

вопрос заключается в том, что сценарий установки никогда не кажется, чтобы бежать (ничто не умирает). НО ИМЕЕТ строка, правильно вставленная в таблицу core_resource ... Любые подсказки? Благодаря

(пс, если есть запись в таблице core_resource он удаляется, прежде чем я пытаюсь запустить скрипт)

+0

Как вы запускаете рабочий процесс сценария установки? – benmarks

+0

Обновите домашнюю страницу. – sulman

ответ

4

Исходя из того, что XML-модуль вашего модуля объединяется (следовательно, запись в core_resource) и предполагая, что XML в вашем пост является копией этого контента, есть три возможности:

  1. иерархии файловой системы: у вас есть опечатка в вашем имени файла, папки или неправильной структуры папок
  2. Разрешения: PHP не может include() содержимое файла
  3. Существует дубликат config.xm l, который указывает другой подкаталог, и этот файл фактически не объединяется.

Решения:

  1. Смотри, смотри, смотри
  2. Проверьте права доступа, протестировать скрипт непосредственно
  3. grep, ломают конфигурационный XML в файле, в котором вы работаете, и/или сбрасывать конфигурационный XML для xpaths в вопросе:

    echo Mage::getConfig()->getNode('modules/Sulman_Custompermissions/version'); 
    echo Mage::getConfig()->getNode('global/resources/mymodule_setup/setup/module'); 
    
+1

Ahhh! Ты был прав. Оказалось, что это была проблема в etc/modules/Sulman_Custompermissions.xml .... Magento по-прежнему поражает меня тем, что что-то настолько, казалось бы, не имеет отношения к делу, может заставить некоторые вещи работать, а некоторые вещи не работают! Ну что ж. Урок выучен. Спасибо, Бен. – sulman

0

Измените config.xml для 1.0.0.0

<global> 
    <resources> 
     <mymodule_setup> 
      <setup> 
       <module>Sulman_Custompermissions</module> 
      </setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </mymodule_setup> 
    </resources> 
</global> 

и изменить сценарий имя файла установки для mysql4-install-1.0.0.0.php и удалите запись из таблицы core_resource и очистите кэш и проверьте ....

+2

* mysql4- * префикс устарел в CE1.7 и подключение не требуется. – benmarks

+0

ahh, Спасибо benmarks за хорошую точку. – MagentoDiary

0

Убедитесь, что ваш config.xml называет модуль, как он отображается в вашем каталоге sql. Для меня, у меня было SQL-> customizations_setup и это работало нормально локально с прописными буквами, как так:

<Customizations_setup> 
     <setup> 
     <module>AMI_Customizations</module> 
     <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class> 
     </setup> 
     <connection> 
     <use>core_setup</use> 
     </connection> 
    </Customizations_setup> 

Но это работает только потому, что моя локальная машина не чувствительна к регистру.Мой рабочий сервер (Linux) чувствителен к регистру, и было бы создать запись в core_resource ок, но оттуда он не будет создавать записи БД, пока я не сделал XML сопрягать мое имя каталога следующим образом:

<customizations_setup> 
     <setup> 
     <module>AMI_Customizations</module> 
     <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class> 
     </setup> 
     <connection> 
     <use>core_setup</use> 
     </connection> 
    </customizations_setup> 
Смежные вопросы