Magento没有执行我的模块安装脚本

时间:2016-05-28 00:47:27

标签: magento magento-1.9

我正在尝试创建一个本地模块。关于这一点,有很多问题。我几乎所有人都跟着他们。但它永远不会奏效。

Atlast我遵循了这个:http://devdocs.magento.com/guides/m1x/magefordev/mage-for-dev-6.html

但这也不起作用。这是我的结构:

应用程序/代码/本地/ MyCompany的/你好/型号/资源/ Setup.php

<?php
class Mycompany_Hello_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup {

}

在app / code / local / Mycompany / Hello / sql / mycompany_hello_setup / install-0.1.0.php

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

应用程序/代码/本地/ MyCompany的/你好的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Mycompany_Hello>
            <version>0.1.0</version>
        </Mycompany_Hello>
    </modules>
    <frontend>
        <routers>
            <hello>
                <use>standard</use>
                <args>
                    <module>Mycompany_Hello</module>
                    <frontName>hello</frontName>
                </args>
            </hello>
        </routers>
    </frontend>
    <global>
        <resources>
            <Mycompany_Hello_setup>
                <setup>
                    <module>Mycompany_Hello</module>
                    <class>Mycompany_Hello_Model_Resource_Setup</class>
                </setup>
            </Mycomapny_Hello_setup> 
    </resources> 
</global> 

这里我面临的唯一问题是它永远不会执行安装脚本。 我的方法到现在为止:

每次尝试将app / code / local / Mycompany / Hello / sql / mycompany_hello_setup / install-0.1.0.php重命名为以下名称 app / code / local / Mycompany / Hello / sql / hello_setup / install- 0.1.0.php 下, app / code / local / Mycompany / Hello / sql / hello_setup / mysql4-install-0.1.0.php app / code / local / Mycompany / Hello / sql / mycompany_hello_setup / install- 0.1.0.php 下, 应用/代码/本地/ MyCompany的/你好/ SQL / Mycompany_hello_setup / mysql4安装-0.1.0.php

在每次尝试期间,我都会刷新缓存并从core_resources表中删除该条目。

我的所有文件都是777(出于调试目的,稍后我会将其更改为755)。我在调试中安装了一个调试代码。一旦执行,我将用我的实际安装程序脚本替换它。

但似乎有些东西,我错过了一些东西,因此它无法正常工作。

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

resources标记中,第一级节点必须与sql /中的文件夹名称匹配,并且区分大小写。
所以看起来应该是这样的:

    <resources>
        <mycompany_hello_setup>
            <setup>
                <module>Mycompany_Hello</module>
                <class>Mycompany_Hello_Model_Resource_Setup</class>
            </setup>
        </mycompany_hello_setup>
    </resources>

安装脚本位于app / code / local / Mycompany / Hello / sql / mycompany_hello_setup / install-0.1.0.php中 如果它仍然不起作用,请检查core_resource表中没有code =“mycompany_hello_setup”的条目(如果有的话,将其删除),并确保已创建应用程序/ etc / modules / Mycompany_Hello.xml文件,内容为:

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

答案 1 :(得分:0)

如果它仍然不起作用,请检查core_resource表中是否没有条目,如果有条目则将其删除:这有效。 由于该表已经有[module_name] _setup的条目,我创建了名为[Namespace_name] _ [module_name] _setup的新文件夹,而不是删除现有的文件夹,并且它有效。