创建到表的新列

时间:2017-11-17 14:55:30

标签: php magento magento-1.9

我试图在我的moduloe中添加我需要的新列,但我需要在" sales_flat_order"中创建3列。表。我已经创建了php脚本,添加了sql并在我的config.xml上配置它,但是在加载我的商店后,清理我的缓存,没有任何改变,对不起,如果我遗漏了一些东西,这是我建立的第一个模块,我仍然在magento上添加新表或列的新功能。

我的模块结构如下: - local / CompanyName / Mynewmodule / sql / invoicedocs_setup / mysql4-install-010.php

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

$installer->getConnection()
    ->addColumn($installer->getTable('sales/order'),'magnifinance_invoice_id', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_INTEGER,
        'nullable'  => true,
        'length'    => 10,
        'after'     => 'status', // column name to insert new column after
        'comment'   => 'Company Invoice ID'
    ))
    ->addColumn($installer->getTable('sales/order'),'magnifinance_invoice_url', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_TEXT,
        'nullable'  => true,
        'length'    => 255,
        'after'     => 'status', // column name to insert new column after
        'comment'   => 'Company Invoice URL Doc'
    ))
    ->addColumn($installer->getTable('sales/order'),'magnifinance_date', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_DATETIME,
        'nullable'  => true,
        'after'     => 'status', // column name to insert new column after
        'comment'   => 'Company Invoice Date'
    ));
$installer->endSetup();


- local/CompanyName/Mynewmodule/etc/config.xml:



       <config>
            <global>
                <models>
                    <magnifinance>
                        <class>CompanyName_Mynewmodule_Model</class>
                    </magnifinance>
                </models>


                <resources>
                    <invoicedocs_setup>
                        <setup>
                            <module>CompanyName_Mynewmodule</module>
                            <class>Mage_Catalog_Model_Resource_Setup</class>
                        </setup>
                        <connection>
                            <use>core_setup</use>
                        </connection>
                    </invoicedocs_setup>
                    <invoicedocs_write>
                        <connection>
                            <use>core_write</use>
                        </connection>
                    </invoicedocs_write>
                    <invoicedocs_read>
                        <connection>
                            <use>core_read</use>
                        </connection>
                    </invoicedocs_read>
                </resources>
...

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

请验证您是否在config.xml中有该部分

<modules>
   <CompanyName_Mynewmodule>
      <version>0.1.0</version>
   </CompanyName_Mynewmodule> 
</modules>

尝试将文件mysql4-install-010.php重命名为mysql4-install-0.1.0.php (文件名中的数字应与config.xml中的版本相同)

请在运行sql脚本之前确保表core_resource没有行:invoicedocs_setup 0.1.0 0.1.0。 (如果该行存在,您将无法运行该脚本。该行应在安装成功后显示)