Magento支持在模块中创建、删除、更新数据库表及字段。通过该方式,在插件开发的过程中,添加和修改字段变成了一件非常轻松的事情。只需要修改模块的版本号,同时在文件中添加一个符合命名规则的脚本就可以了。
假如当前Magento模块是Ruiwant_Rewards,版本号是0.9.0,我们想在该模块中,为积分表添加一个status字段。首先第一步,我们需要将版本号修改为0.9.1。接着在模块根目录下的data/sql(根据你一直在用的目录,本例以data目录为准)中建立data-upgrade-0.9.0-0.9.1.php文件。在该文件中,添加如下代码。
$installer = $this; $table = $installer->getConnection() ->addColumn($installer->getTable('rewards/point'), 'status', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array( 'unsigned' => true, 'nullable' => true, ), 'Point Status'); $installer->endSetup();
一切正常的话,该表会成功添加一个status字段。类似addColumn()的更多Magento封装的数据库表结构修改方法可以参考该文章或直接去源码里边看。