免责声明:我没碰过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