2012-03-14 43 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將再次運行初始安裝腳本。無需搗鼓升級。當然,如果你正在發佈你的模塊,升級腳本將是必要的。