Magento – Add new column in existing database table

databasemagento-1.9

I have created file mysql4-upgrade-1.6.0.1-1.6.0.2 in which code is like,

<?php
$installer = $this;
$installer->startSetup();

$installer->getConnection()
->addColumn($installer->getTable('newsletter_subscriber'),'subscriber_name', array(
    'type'      => Varien_Db_Ddl_Table::TYPE_TEXT,
    'length'    => 255,
    'after'     => 'subscriber_email', // column name to insert new column after
    'comment'   => 'Subscriber Name'
    ));   
$installer->endSetup();
?>

Also changed in config file. It is like,

<modules>
        <Mage_Newsletter>
            <version>1.6.0.2</version>
        </Mage_Newsletter>
</modules>

But still column is not added in the database 'newsletter_subscriber' table. Any help?

Best Answer

If above syntax is not working for you then you can try below syntax to

<?php
$installer = $this;


$installer->startSetup();

try {
        $tableName = $installer->getTable('newsletter_subscriber');
        $installer->run(" ALTER TABLE {$tableName} ADD `subscriber_email` VARCHAR(255) NOT NULL  ; ");
        $installer->endSetup();


} catch (Exception $e) {
        // to do
}

and also check your core_resource table if entry is already there for your new version then revert and try again

Related Topic