2011-12-27 81 views
5

我注意到在Magento認證開發者學習指南中,在數據庫部分提到的其中一個項目是「編寫降級(回滾)腳本」。Magento是否支持模塊的降級/回滾腳本?

我已經做了一些搜索,看是否支持降級腳本,它似乎不是。我在今年早些時候發現thread,似乎他們認爲當時不支持降級腳本。

而且,做了一些谷歌搜索,發現這個article討論似乎是在覈心回滾腳本時的一些初步支持。

我還搜查下的應用程序/代碼/核心/法師的「回滾」和「降級」和幾乎大部分的東西,我發現是有關數據庫事務回滾代碼。

如果學習指南不支持,爲什麼學習指南會討論這個問題?我肯定錯過了什麼。

回答

5

當前的Magento的版本有回滾數據庫遷移腳本沒有實現,其中回退是指識別模塊的版本數量減少和運行相應的腳本。

請記住,您正在查看學習指南,而不是手冊。

雖然沒有了在Magento的當前版本正式回滾,如Magento的開發人員,您可能需要回滾在前面的模塊升級做數據庫更改的支持。我已經準備好描述該場景的問題,並提供測試您對現有Magento功能知識的答案。

+2

事實上,這是事實。 – benmarks 2011-12-27 21:35:20

+0

謝謝艾倫,當然有道理。抨擊學習指南讓我遍佈地圖。它的寫法相當出色,我認爲從給予你足夠的沉痛感而不是給予你所有的東西,從字面上看,你仍然需要做一些練習和挖掘。 那麼,我的下一個問題是如何與Magento檢測到版本號減少的事件掛鉤 - 除了只是簡單地覆蓋一個類之外 - 但我會在發佈該問題之前做更多的挖掘。 – kalenjordan 2011-12-27 21:44:45

0

它在這裏: Mage_Core_Model_Resource_Setup::applyUpdates()可用,至少從Magento 1.3。

+1

嗯,但是當我跟蹤下來到_modifyResourceDb(),它似乎像TYPE_DB_ROLLBACK $操作類型不支持?它只是從switch語句中缺少。 你不是有一個例子回滾腳本躺在某處?或者它只是以編程方式反轉設置腳本中的設置步驟? – kalenjordan 2011-12-27 09:44:34

+1

哦,你說得對。從'_modifyResourceDb'方法是否清楚,回滾和卸載不工作:) – vsushkov 2011-12-27 09:50:44

+0

但你可以寫你自己的設置類,這將支持回滾和卸載(見'Mage_Core_Model_Resource_Setup :: applyAllUpdates()','字符串$ setupClass =新的$ className($ resName);') – vsushkov 2011-12-27 09:56:20