【问题标题】:Magento 1.7 - installer script does not runMagento 1.7 - 安装程序脚本不运行
【发布时间】:2013-08-26 19:44:12
【问题描述】:

我的安装程序脚本没有运行。

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

配置.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>

...

/app/code/local/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/log 中看不到错误

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

我在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;
}

【问题讨论】:

  • 1) 验证配置缓存是否已禁用或至少已被清除。 2) 发布你的模块声明文件(位于app/etc/modules/)。
  • 我已添加我的/app/etc/modules/Starmall_Salesorder.xml 我已禁用缓存并删除以确保 /var 文件夹

标签: magento magento-1.7


【解决方案1】:

假设您有一个模块声明文件,其中 modules 节点与您的帖子匹配,并且您位于区分大小写的文件系统上,那么应用程序不会加载您的模块配置文件。

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

进一步说明:在 Magento CE 1.6 和更高版本中,模型层被重新设计为与数据库无关,因此适用于 1.6+ 的新模块使用安装文件名,例如 install-1.0.php 用于与后端无关的升级脚本。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多