调用未定义的方法Varien_Db_Statement_Pdo_Mysql :: addColumn()

时间:2015-12-11 12:57:10

标签: mysql magento magento-1.9

当我尝试运行升级脚本时,它在第二个addcolumn上出现Call to undefined method Varien_Db_Statement_Pdo_Mysql::addColumn()错误,但是当我删除所有其他列并只保留一个addColumn时,它工作正常。我的升级脚本如下

    $installer->startSetup();

/**
 * alter table 'savecart/savecart'
 */

 $installer->getConnection()
    ->addColumn($installer->getTable('savecart/savecart'),'savecart_name', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_TEXT,
        'nullable'  => true,
        'length'    => 255,
        'comment'   => 'Savecart Name'
        ))
    ->addColumn($installer->getTable('savecart/savecart'),'savecart_comment', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_TEXT,
        'nullable'  => true,
        'comment'   => 'Savecart Comment'
        ))
    ->addColumn($installer->getTable('savecart/savecart'),'savecart_bill_id', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_INTEGER,
        'nullable'  => true,
        'length'    => 10,
        'comment'   => 'Billing Id'
        ))
    ->addColumn($installer->getTable('savecart/savecart'),'savecart_valid_till', array(
        'type'      => Varien_Db_Ddl_Table::TYPE_DATE,
        'nullable'  => true,
        'comment'   => 'Valid Till Date'
        ));


$installer->endSetup();

2 个答案:

答案 0 :(得分:0)

正确连接

我正在研究这个问题,并发现了几个使用不同写作方法的网站:

http://magedevguide.com/challenge/chapter4/1

http://magento.ikantam.com/qa/how-setup-magento-scripts

请使用您的值尝试这些方法.. 您可以尝试按照代码复制粘贴,但请查看它以获取您的值..

$installer->startSetup();

/**
 * alter table 'savecart/savecart'
 */

$installer->getConnection()
    ->newTable($installer->getTable('savecart/savecart'))
    ->addColumn('savecart_name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array('nullable' => true), 'Savecart Name')
    ->addColumn('savecart_comment', Varien_Db_Ddl_Table::TYPE_TEXT, null, array('nullable' => true), 'Savecart Comment')
    ->addColumn('savecart_bill_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array('nullable' => true), 'Billing Id')
    ->addColumn('savecart_valid_till', Varien_Db_Ddl_Table::TYPE_DATE, null, array('nullable'  => true), 'Valid Till Date');

$installer->endSetup();

如果其中一个解决方案正在运行,请告诉我,以便我可以更新我的答案。

答案 1 :(得分:0)

请使用以下升级脚本将多列添加到现有的magento表中。详细说明。 https://www.pearlbells.co.uk/upgrade-script-multiple-columns-magento/

$installer->getConnection()
->addColumn($installer->getTable('imagedetail'),'filters_workshop_colour', 
    array(
    'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
    'nullable' => true,
    'comment' => 'Filters Workshop Colour'
));
$installer->getConnection()
->addColumn($installer->getTable('imagedetail'),'splashbackcolor', 
    array(
    'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
    'nullable' => true,
    'comment' => 'Splash Back Color'
    ));
$installer->getConnection()
->addColumn($installer->getTable('imagedetail'),'cabinetcolor', 
    array(
    'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
    'nullable' => true,
    'comment' => 'Cabinet Color'
    ));