免責聲明:我沒碰過Magento的6個月。 現在說的是,如果你看一下app/code/core/Mage/Sales/sql/sales_setup /目錄,你會發現如何修改訂單表的例子。比如這裏是應用程序/代碼/核心的內容/法師/銷售/ SQL/sales_setup/mysql4升級-0.9.12-0.9.13.php(無頭註釋):
$installer = $this;
/* @var $installer Mage_Sales_Model_Mysql4_Setup */
$installer->addAttribute('quote', 'subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'subtotal_with_discount', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal_with_discount', array('type'=>'decimal'));
$這從app/code/core/Mage/Sales/etc/config.xml中的config/global/resources/sales_setup/setup/class看看這個類,然後你會看到它繼承自Mage_Eav_Model_Entity_Setup,默認設置類,並重寫或添加一些方法(例如對於平臺支持)。
要回答您的第一個問題(第一個問題),您可以使用此類的addAttribute()方法添加列。第二個問題的答案是肯定的,但是您必須在模塊的config.xml文件中指定要使用Mage_Sales_Model_Mysql4_Setup作爲安裝類。這是通過添加先前在app/code/core/Mage/Sales/etc/config.xml中找到的相同的xml元素來完成的(用你的mod_setup替換sales_setup)。所以你轉儲你的數據庫,你通過在你的mysql4-install-0.1.0.php文件中使用get_class($ this)檢查它的工作原理,然後你恢復你的數據庫。並且你繼續在你的設置文件中寫入,從你在app/code/core/Mage/Sales/sql/sales_setup中看到的文件中啓發自己,並且它應該沒問題! 現在第二點......我不知道......我希望它會自動工作! 祝你好運!
我不認爲它適用於1.4.1,因爲表格從EAV變爲了平坦。看看mysql4-upgrade-1.4.0.2-1.4.0.3.php。他們使用addColumn而不是addAttribute。 – pablo 2010-08-23 01:02:38
@pablo:你看過我的回答嗎?如果說一些方法增加了平臺支持。這是addAttribute()方法的情況。只需看看Mage_Sales_Model_Mysql4_Setup類。 – greg0ire 2010-08-23 08:14:37
我錯過了您建議使用銷售設置模塊的事實。我會嘗試一下並報告我的結果。謝謝。 – pablo 2010-08-23 10:07:58