无法在Magento(1.8.x)中运行安装程序脚本

时间:2014-05-08 12:56:48

标签: xml magento frameworks

我正在尝试为Magento 1.8.x运行安装程序脚本,但我不确定如何执行它。任何人都可以确认下面的文件是否有任何问题,以及如何让Magento实际执行此脚本并添加此自定义客户属性?

这是我的文件夹结构(只包括我觉得对此有效的那些):

\app\code\local\SS\Rapt\
\app\code\local\SS\Rapt\etc\config.xml
\app\code\local\SS\Rapt\sql\mysql4-install-0.0.1.php

我的安装程序文件如下:

$installer = $this;
$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$entityTypeId     = $setup->getEntityTypeId('customer');
$attributeSetId   = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$setup->addAttribute('customer', 'organisation_id', array(
    'input'         => 'select', //or select or whatever you like
    'type'          => 'int', //or varchar or anything you want it
    'label'         => 'Organisation ID',
    'visible'       => 1,
    'required'      => 0, //mandatory? then 1
    'user_defined' => 1,
));

$setup->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'organisation_id',
    '100'
);

$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'organisation_id');
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
$oAttribute->save();

$setup->endSetup();

我的config.xml如下:

<config>
<modules>
    <SS_Rapt>
        <version>0.0.1</version>
    </SS_Rapt>
</modules>
/** more here but left out as not applicable to this installer feature **/

2 个答案:

答案 0 :(得分:2)

MySQL4不再使用了。您应该使用资源设置模型。首先,您应该在config.xml中定义资源

<config>
    <modules>
        <SS_Rapt>
        <version>0.0.1</version>
    </SS_Rapt>
    </modules>

    <global>
        <resources>
            <rapt_setup>
                <setup>
                    <module>SS_Rapt</module>
                    <class>SS_Rapt_Model_Resource_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </rapt_setup>
        </resources>
    </global>

</config>

然后你需要在以下位置创建SS_Rapt_Model_Resource_Setup文件:

SS/Rapt/Model/Resource/Setup.php

这个类应该包含这个:

<?php
class SS_Rapt_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup{

}

最后,您需要在此位置创建安装脚本:SS/Rapt/sql/rapt_setup/install-0.0.1.php

您不需要将mysql4放在安装脚本名称的开头。那就是它:))

答案 1 :(得分:0)

我终于解决了 - sql目录需要有一个名为&#39; rapt_setup&#39;的文件夹。用sql里面的那个!?卫生署!

但是,由于J.S提供了很多帮助,我仍然希望他能得到答案:)