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

调用未定义的方法Varien_Db_Statement_Pdo_Mysql::addColumn(),mysql,magento,magento-1.9,Mysql,Magento,Magento 1.9,当我尝试运行升级脚本时,它会调用未定义的方法Varien_Db_Statement_Pdo_Mysql::addColumn()错误,但当我删除所有其他列并只保留一个addColumn时,它工作正常。我的升级脚本如下所示 $installer->startSetup(); /** * alter table 'savecart/savecart' */ $installer->getConnection() ->addColumn($installer

当我尝试运行升级脚本时,它会调用未定义的方法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();

正确链接

我对此进行了调查,发现有几个网站使用了不同的写作方法:

请用您的值尝试这些方法。。 您可以尝试复制粘贴以下代码,但请查看您的值

$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();

请让我知道其中一个解决方案是否有效,以便我可以更新我的答案。

请使用以下升级脚本向现有magento表中添加多列。有关详细说明,请参阅。


我已经更新了问题并删除了半列,但不起作用我已经尝试了我知道的第二个答案,但我想知道为什么链接在这个脚本中不起作用。它应该起作用,因为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'
    ));