Magento覆盖sql升级脚本?

时间:2012-03-14 06:05:54

标签: magento

如何覆盖位于sql文件夹中的magento中的升级脚本?

我知道如何使用表格和所有设置新模块。我知道安装脚本只运行一次。但我想知道如何使用现有值覆盖或更改表中的某些内容。

我想运行一个sql查询,以便我可以更改数据库中的Customer属性。例如,我想将'eav_attribute'表中的'frontend_label'更改为'First Name'为'Company Name'。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您的解决方案是提升您的扩展程序版本号并为您的任务制作新的升级脚本

答案 1 :(得分:0)

如果您只是在开发,则不必乱用升级脚本。这些都很麻烦。

运行此MySQL代码:

DELETE FROM core_resource WHERE code = 'mymodulename_setup';

为了简化操作,您可以创建自己的方法或操作来执行此操作,并根据需要向以下功能添加功能:

public function removeMyModuleAction() {
    $sql = "DELETE FROM 'core_resource'
                  WHERE 'code' = 'mymodule_setup';";

    $connection = Mage::getSingleton('core/resource')->getConnection('core_write');

    try {
        $connection->query($sql);
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}

当您从core_resource table中删除此行时,Magento将再次运行初始安装脚本。无需摆弄升级。当然,如果您要发布模块,则需要升级脚本。