如何覆盖位于sql文件夹中的magento中的升级脚本?Magento重写SQL升级脚本?
我知道如何用表格和全部设置新模块。我知道安装脚本只能运行一次。但我想知道如何用现有值覆盖或更改表中的某些内容。
我想运行一个sql查询,以便我可以更改数据库中的Customer属性。例如,我想将'First Name'的'eav_attribute'表中的'frontend_label'更改为'Company Name'。
有什么建议吗?
如何覆盖位于sql文件夹中的magento中的升级脚本?Magento重写SQL升级脚本?
我知道如何用表格和全部设置新模块。我知道安装脚本只能运行一次。但我想知道如何用现有值覆盖或更改表中的某些内容。
我想运行一个sql查询,以便我可以更改数据库中的Customer属性。例如,我想将'First Name'的'eav_attribute'表中的'frontend_label'更改为'Company Name'。
有什么建议吗?
您的解决方案是碰到你的扩展版本号,并作出新的升级脚本任务
如果你只开发,你不必与升级脚本一塌糊涂。这是一件麻烦事。
运行此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将再次运行初始安装脚本。无需捣鼓升级。当然,如果你正在发布你的模块,升级脚本将是必要的。
但我怎么能运行升级脚本,我的意思是我没有超载控制器。对不起,我对它很陌生,而且有点困惑。可以请提供一些伪代码 – RIK 2012-03-14 10:30:56
,不需要控制器覆盖。 只是创建更新脚本。 增加模块版本。 ,它会自动运行 – Sergey 2012-03-14 11:13:32
是的,它会工作,如果我在核心客户模块(增加模块版本和升级sql脚本),但它是正确的方式来做到这一点。我的意思是他们说不要接触核心文件..使用本地 – RIK 2012-03-14 13:50:19