2013-01-14 110 views
1

我的安装程序脚本无法运行。Magento 1.7 - 安装程序脚本不运行

/app/etc/modules/Starmall_Salesorder.xml

<?xml version="1.0"?> 
<config> 
<modules> 
    <Starmall_Salesorder> 
     <active>true</active> 
     <version>0.1.0</version> 
     <codePool>local</codePool> 
    </Starmall_Salesorder> 
</modules> 

的Config.xml

<modules> 
    <Starmall_Salesorder> 
     <version>0.1.0</version> 
    </Starmall_Salesorder> 
</modules> 

... 
    <resources> 
     <starmall_salesorder_setup> 
      <setup> 
       <module>Starmall_Salesorder</module> 
      </setup> 
     </starmall_salesorder_setup> 
    </resources> 

... 

/应用程序/代码/本地/ Starmall/Salesorder/SQL/starmall_salesorder_setup/mysql4-install-0.1.0.php:

<?php echo 'Running installer: '.get_class($this)."\n <br /> \n"; 
die("Exit for now"); 

加载页面时,我看不到测试输出。
此模块的core_resource中没有行。

没有错误,看看在/ var /日志

为什么这个安装程序无法运行?

我加入调试线app/code/core/Mage/Core/Model/Resource/Setup.php
它没有得到这里的这个功能_installResourceDb($newVersion)

protected function _installResourceDb($newVersion) 
{ 
    Mage::log("this line is not added to log file"); 

    $oldVersion = $this->_modifyResourceDb(self::TYPE_DB_INSTALL, '', $newVersion); 
    $this->_modifyResourceDb(self::TYPE_DB_UPGRADE, $oldVersion, $newVersion); 
    $this->_getResource()->setDbVersion($this->_resourceName, $newVersion); 

    return $this; 
} 
+0

1)验证配置缓存被禁用或至少它被清除。 2)发布模块的声明文件(位于* app/etc/modules/*中)。 – benmarks

+0

我已经添加了我的'/ app/etc/modules/Starmall_Salesorder.xml'我禁用了缓存并删除了以确保/ var文件夹 – Guus

回答

1

假设你有一个modules节点匹配您的文章模块声明文件,而且你是一个区分大小写的文件系统,那么应用程序不会加载你的模块配置文件。

当Magento正在初始化时,<modules>的子节点与codePool值一起用作每个模块配置文件路径的一部分。节点名称(例如starmall_salesorder)被转换为目录路径Starmall/Salesorder(注意大小写)。要解决此问题,请在声明和配置文件中将模块的节点名称更正为Starmall_Salesorder,并将值更改为global/resources/starmall_salesorder_setup/setup/module以匹配。

一个进一步的注意:在Magento CE 1.6和更高的模型层返工是数据库无关的,所以它对于用于1.6+新模块使用安装的文件名,如安装-1.0.php为是适当后端不可知的升级脚本。

+0

再次检查,您是对的!缺少大写字母。 – Guus

0

今天我也遇到了一些麻烦。即使它被禁用,我也必须清除缓存。因此,无论何时更新/更改/运行安装程序脚本,请确保先手动清除缓存。

相关问题