【问题标题】:setup installer script in magento module在 magento 模块中设置安装程序脚本
【发布时间】:2014-05-21 04:54:02
【问题描述】:

嗨,我正在开发一个小 magento 模块。

下面是我的模块目录结构

app/code/local/Xyz/Total
/var/www/magext/app/code/local/Xyz/Total/Block/Prototal.php
/var/www/magext/app/code/local/Xyz/Total/controllers/IndexController.php
/var/www/magext/app/code/local/Xyz/Total/etc/config.xml
/var/www/magext/app/code/local/Xyz/Total/Model/Price/Observer.php

下面是我的配置文件代码

<?xml version="1.0"?>
<config>
  <global>
      <blocks>
         <total>
              <class>Xyz_Total_Block</class>
         </total>
      </blocks>   


    <models>
        <xyztotal>
             <class>Xyz_Total_Model</class>
        </xyztotal>
    </models>
    <events>
      <sales_order_place_after>
        <observers>
          <xyz_total_price_observer>
            <type>singleton</type>
            <class>Xyz_Total_Model_Price_Observer</class>
            <method>apply_discount_percent</method>
          </xyz_total_price_observer>
        </observers>
      </sales_order_place_after>     
    </events>
  </global>
 <frontend>
   <routers>
      <total>
          <use>standard</use>
          <args>
             <module>Xyz_Total</module>
             <frontName>newcatalog</frontName>
          </args>
       </total>
   </routers>
    <layout>
        <updates>
            <total>
                 <file>total.xml</file>
             </total>
        </updates>
    </layout>

</frontend>
</config>

现在我需要通过我的模块安装产品属性

。但我不明白我应该把我的安装程序放在哪里 脚本以及如何修改配置文件。

请建议。

【问题讨论】:

  • 请阅读blog
  • 我有检查你能告诉我这个module_setp中的​​app/code/local/Packagename/Modulename/sql/module_setp/mysql 0.1.1.0应该和这个一样吗
  • 我想应该是{module_name}_setup。例如,如果模块名称是 Xyz,那么 Xyz_setup.
  • 我刚刚找到另一个blog
  • 您好我已经创建了一个文件 /var/www/magext/app/code/local/Xyz/Total/sql/total_setup/mysql4-install-0.0.1.php 但它没有运行任何脚本并创建任何属性

标签: sql magento module installation


【解决方案1】:

我看到你的 config.xml 我找不到 xml vesrion。 所以你需要像下面的例子一样给出xml版本:

<config>
    <modules>
        <Xyz_Total>
            <version>0.1.0</version>    <!-- Version of module -->
        </Xyz_Total>
    </modules>
</config>

现在创建文件 app/code/local/Xyz/Total/sql/total_setup/mysql4-install-0.1.0.ph‌​p 之后重新安装模块并检查它。

【讨论】:

  • 请检查您是否没有两次提供模块版本。一次在 app\etc\modules\Xyz_Total.xml 中。第二次在您的模块 config.xml 中。
【解决方案2】:

您还必须在config标签下的config.xml中添加以下代码。

<global>
    <resources>  <!-- These are resource setting giving access to module, read/write permission on database -->
        <total_setup>
            <setup>
                <module>Xyz_Total</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </total_setup>
        <total_write>
            <connection>
                <use>core_write</use>
            </connection>
        </total_write>
        <total_read>
            <connection>
                <use>core_read</use>
            </connection>
        </total_read>
    </resources>
</global>

之后重新安装模块。

【讨论】:

    【解决方案3】:

    看看@Adding custom product attributes in Magento using setup script

    <modules>
        <Xyz_Total>
            <version>0.1.0</version>
        </Xyz_Total>
    </modules>
    <global>
      ....   
      <models>
        <xyztotal>
             <class>Xyz_Total_Model</class>
             <resourceModel>total_setup</resourceModel>
        </xyztotal>
      </models>
      <resources>
         <catalog_setup>
            <setup>
               <module>Mage_Catalog</module>
               <class>Mage_Catalog_Model_Resource_Setup</class><!-- that line !-->
            </setup>
         </catalog_setup>
      </resources>
    ...
    

    app/code/local/Xyz/Total/sql/total_setup/mysql4-install-0.1.0.ph‌​p

    $installer->addAttribute('catalog_product', 'offer_type', array(
            'backend'       => '',
            ...
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多