我的模块安装程序没有运行,也没有进入资源表

时间:2012-12-26 14:11:21

标签: magento

我一直在研究一个需要在sales_orders表中添加一些属性的模块。所以我想我会创建一个资源安装脚本并将其添加到XML中。对我来说这不是一件容易的事。说实话,我不能让它发挥作用。我已经搜索了几个小时来获得解决方案,但我还没有找到它。奇怪的是我的模块不在core_resource表...

这是我的XML。我对XML编辑有点新意。也许我犯了错误。

XML:

<config>
        <global>
       <modules>
        <Sendcloud_Magento>
            <version>0.2.0</version>
        </Sendcloud_Magento>
    </modules>
    <helpers>
          <magento>
            <class>Sendcloud_Magento_Helper</class>
        </magento>
        </helpers>
      <models>
        <magento>
               <class>Sendcloud_Magento_Model</class>
            <resourceModel>magento_resource</resourceModel>
        </magento>
          <magento_mysql4>
            <class>Sendcloud_Magento_Model_Mysql4</class>
        </magento_mysql4>
     </models>

    <resources>
<!-- ... -->
<magento_setup>
    <setup>
        <module>Sendcloud_Magento</module>
        <class>Sendcloud_Magento_Model_Resource_Mysql4_Setup</class>
    </setup>
    <connection>
        <use>core_setup</use>
    </connection>
</magento_setup>
<!-- ... -->
</resources>
</global>
 <admin>
    <routers>
        <magento>
            <use>admin</use>
            <args>
                <module>Sendcloud_Magento</module>
                <frontName>sendcloud</frontName>
            </args>
        </magento>
    </routers>
</admin>
<adminhtml>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <sendcloud>
                                        <title>Sendcloud</title>
                                    </sendcloud>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>

    <layout>
        <updates>
            <magento>
                <file>magento.xml</file>
            </magento>
        </updates>
    </layout>
    <events>
        <core_block_abstract_prepare_layout_before>
            <observers>
                <magento_core_block_abstract_prepare_layout_before>
                    <class>Sendcloud_Magento_Model_Observer</class>
                    <method>addMassAction</method>
                </magento_core_block_abstract_prepare_layout_before>
            </observers>
        </core_block_abstract_prepare_layout_before>
    </events>
</adminhtml>

我在我的模块中放了一个安装程序脚本。路径 /local/Sendcloud/Magento/sql/magento_setup/mysql4-install-0.2.0.php

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

我有一个模型 Sendcloud / Magento的/型号/资源/ Mysql4 / Setup.php

class Sendcloud_Magento_Model_Resource_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
}

我希望你们中的一些人能够解决我的问题。

祝福和新年快乐,

2 个答案:

答案 0 :(得分:1)

所以现在你需要将版本从0.2.0更新到0.3.0,试试这个

应用\代码\本地\ Sendcloud \ Magento的\等\ config.xml中

<?xml version="3.0"?>
<config>
    <modules>
        <Sendcloud_Magento>
            <version>0.3.0</version>
        </Sendcloud_Magento>
    </modules>
    <frontend>
        <routers>
            <magento>
                <use>standard</use>
                <args>
                    <module>Sendcloud_Magento</module>
                    <frontName>magento</frontName>
                </args>
            </magento>
        </routers>
    </frontend>
    <global>
        <models>
            <magento>
                <class>Sendcloud_Magento_Model</class>
                <resourceModel>magento_mysql4</resourceModel>
            </magento>
            <magento_mysql4>
                <class>Sendcloud_Magento_Model_Mysql4</class>
                <entities>
                    <magento>
                        <table>magento</table>
                    </magento>
                </entities>
            </magento_mysql4>
        </models>
        <resources>
            <magento_setup>
                <setup>
                    <module>Sendcloud_Magento</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </magento_setup>
            <magento_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </magento_write>
            <magento_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </magento_read>
        </resources>
    </global>
</config>

应用\代码\本地\ Sendcloud \ Magento的\模型\ Magento.php

class Sendcloud_Magento_Model_Magento extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('magento/magento');
    }
}

应用\代码\本地\ Sendcloud \ Magento的\模型\ Mysql4 \ Magento.php

class Sendcloud_Magento_Model_Mysql4_Magento extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {    
        // Note that the magento_id refers to the key field in your database table.
        $this->_init('magento/magento', 'magento_id');
    }
}

应用\代码\本地\ Sendcloud \ Magento的\模型\ Mysql4 \ Magento的\ Collection.php

class Sendcloud_Magento_Model_Mysql4_Magento_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {
        public function _construct()
        {
            parent::_construct();
            $this->_init('magento/magento');
        }
    }

应用\代码\本地\ Sendcloud \ Magento的\ SQL \ magento_setup \ mysql4升级-0.2.0-0.3.0.php

$installer = $this;

$installer->startSetup();

$installer->addAttribute(
));

$installer->endSetup(); 

应用\等\模块\ Sendcloud_Magento.xml

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

答案 1 :(得分:0)

您是否通过在app / etc / modules /?中添加另一个XML文件来激活模型?