将字段添加到sales_flat_order

时间:2013-01-25 16:46:57

标签: zend-framework magento

我正在尝试通过我正在制作的模块向sales_flat_order表添加一个新字段。我试图运行安装脚本,但似乎根本没有更改表。

以下是更新脚本:

mysql4升级-0.1.1-0.1.2.php

<?php

$installer = $this;
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'expected_delivery_date', 'datetime');

这是我的config.xml

...

<modules>
    <Optimiseweb_OrderPad>
        <version>0.1.2</version>
    </Optimiseweb_OrderPad>
</modules>


...
<resources>
  <orderpad>
      <setup>
          <module>Optimiseweb_Orderpad</module>
          <class>Optimiseweb_Orderpad_Model_Mysql4_Setup</class>
      </setup>
  </orderpad>
</resources>

<models>
  <orderpad>
    <class>Mage_Sales_Model</class>
    <resourceModel>orderpad_mysql4</resourceModel>
  </orderpad>
  <orderpad_mysql4>
           <class>Optimiseweb_Orderpad_Model_Mysql4</class>
           <entities>
               <order><table>sales_flat_order</table></order>
           </entities>
  </orderpad_mysql4>
</models>
...

config.xml中引用的两个模型

Optimiseweb / Orderpad /型号/ Mysql4.php

<?php

class Optimiseweb_Orderpad_Model_Mysql4 extends Mage_Core_Model_Abstract
{



}

Optimiseweb / Orderpad /型号/ Mysql4 / Setup.php

<?php

class Optimiseweb_Orderpad_Model_Mysql4_Setup extends Mage_Sales_Model_Resource_Setup
{



}

Anyhelp将新字段添加到订单表中将非常感激。

1 个答案:

答案 0 :(得分:2)

如果您需要向平面销售表添加列,最好通过向销售实体(sales_order)添加属性来实现。确保您的安装模式Optimiseweb_Orderpad_Model_Mysql4_Setup扩展Mage_Sales_Model_Resource_Setup并执行

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

$installer->addAttribute('order', 'expected_delivery_date', array('type'=>'datetime'));

$installer->endSetup();