2012-03-14 100 views
2

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

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

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

有什么建议吗?

回答

1

您的解决方案是碰到你的扩展版本号,并作出新的升级脚本任务

+0

但我怎么能运行升级脚本,我的意思是我没有超载控制器。对不起,我对它很陌生,而且有点困惑。可以请提供一些伪代码 – RIK 2012-03-14 10:30:56

+1

,不需要控制器覆盖。 只是创建更新脚本。 增加模块版本。 ,它会自动运行 – Sergey 2012-03-14 11:13:32

+0

是的,它会工作,如果我在核心客户模块(增加模块版本和升级sql脚本),但它是正确的方式来做到这一点。我的意思是他们说不要接触核心文件..使用本地 – RIK 2012-03-14 13:50:19

0

如果你只开发,你不必与升级脚本一塌糊涂。这是一件麻烦事。

运行此MySQL代码:

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

当:

DELETE FROM core_resource WHERE code = 'mymodulename_setup'; 

为了方便起见,你可以创建自己的方法或操作也需要这样做,添加功能需要以下你从core_resource table中删除这一行,Magento将再次运行初始安装脚本。无需捣鼓升级。当然,如果你正在发布你的模块,升级脚本将是必要的。