1

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

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

配置文件

<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;
}
4

2 回答 2

1

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

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

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

于 2013-01-14T13:58:46.327 回答
0

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

于 2013-08-26T11:44:12.623 回答