Magento - 安装脚本未运行(但正确添加到core_resource的记录)

时间:2013-05-27 15:23:58

标签: magento module install

所以,我正在尝试使用我的模块运行安装脚本。 (Magento 1.7) 我有这是我的模块config.xml

<?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

然后在我的install-1.0.0.0.php脚本中运行:

die('here');

问题是安装脚本似乎永远不会运行(没有任何故障)。 但有一行正确插入core_resource表... 有线索吗?感谢

(p.s。如果core_resource表中有记录,则在我尝试运行脚本之前将其删除)

3 个答案:

答案 0 :(得分:4)

基于您的模块的配置XML正在合并(因此core_resource中的记录)这一事实,并假设您帖子中的XML是该内容的副本,有三种可能性:

  1. 文件系统层次结构:您的文件名,文件夹或文件夹结构不正确
  2. 权限:PHP不能include()文件内容
  3. 有一个重复的config.xml,它指定了一个不同的子目录,并且该文件实际上没有被合并。
  4. 解决方案:

    1. 看,看,看
    2. 检查权限,直接测试脚本
    3. grep,打破您正在使用的文件中的配置XML,和/或转储相关xpath的配置XML:

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

答案 1 :(得分: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 :(得分:0)

确保config.xml命名模块,因为它出现在sql目录中。对我来说,我有sql-&gt; 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 ok中创建条目,但是从那里它不会创建db条目,直到我使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>