0

作成しているモジュールを介して、sales_flat_orderテーブルに新しいフィールドを追加しようとしています。セットアップスクリプトを実行しようとしましたが、テーブルがまったく変更されていないようです。

更新スクリプトは次のとおりです。

mysql4-upgrade-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で参照される2つのモデル

Optimiseweb / Orderpad / Model / Mysql4.php

<?php

class Optimiseweb_Orderpad_Model_Mysql4 extends Mage_Core_Model_Abstract
{



}

Optimiseweb / Orderpad / Model / Mysql4 / Setup.php

<?php

class Optimiseweb_Orderpad_Model_Mysql4_Setup extends Mage_Sales_Model_Resource_Setup
{



}

注文テーブルに新しいフィールドを追加するための助けをいただければ幸いです。

4

1 に答える 1

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();
于 2013-01-25T16:58:55.053 に答える