2011-12-27 13 views
5

Zauważyłem, że w przewodniku po studiach magisterskich z certyfikatem Magento, w sekcji Baza danych jedną z wymienionych pozycji jest "Write downgrade (rollback) scripts".Czy Magento obsługuje skrypty downgrade/rollback dla modułów?

Zrobiłem kilka wyszukiwania, aby sprawdzić, czy skrypty downgrade są obsługiwane i wygląda na to, że nie są. Znalazłem to thread z początku tego roku, w którym, jak się wydaje, doszli do wniosku, że skrypty obniżania jakości nie były w tym czasie obsługiwane.

Ponadto, niektóre szukały w google i odkryły, że ta article omawia coś, co wydaje się być początkową obsługą skryptów przywracania w rdzeniu.

Również szukałem pod app/code/core/Mage dla "rollback" i "downgrade" i prawie większość tego, co znalazłem, była związana z wycofaniem transakcji DB.

Dlaczego przewodnik do nauki miałby o tym mówić, gdyby nie był obsługiwany? Muszę czegoś przegapić.

Odpowiedz

5

Obecne wersje Magento nie mają implementacji dla skryptów migracji wycofywania bazy danych, gdzie wycofanie oznacza identyfikację, że zmniejszył się numer wersji modułu i uruchomiono odpowiedni skrypt.

Pamiętaj, że szukasz podręcznika do nauki, a nie podręcznika.

Chociaż nie ma wsparcia dla formalnych wycofań w obecnej wersji Magento, jako programista Magento może być konieczne wycofanie zmian w bazie danych dokonanych w poprzednim uaktualnieniu modułu. Byłbym gotowy na pytania, które opisują ten scenariusz, z odpowiedziami, które sprawdzą twoją wiedzę o istniejącej funkcjonalności Magento.

+2

Jest tak w rzeczywistości. – benmarks

+0

Dzięki Alan, z pewnością ma sens. Przebity przewodnik nauki ma mnie na całej mapie. Naprawdę napisano to całkiem dobrze, myślę, że z perspektywy dawania ci wystarczająco dużo, żeby zatopić twoje zęby, ale nie dając ci wszystkiego tak dosłownie, że nadal musisz trochę ćwiczyć i kopać. Cóż, moje następne pytanie brzmi: jak połączyć się z wydarzeniem, w którym Magento wykrywa zmniejszenie numeru wersji - poza zwyczajnym przesłonięciem tej jednej klasy - ale jeszcze trochę popracuję zanim opowiem to pytanie. – kalenjordan

0

To tutaj: Mage_Core_Model_Resource_Setup::applyUpdates() Dostępne przynajmniej z Magento 1.3.

+1

Hm, ale kiedy prześledzę to do _modifyResourceDb(), wydaje się, że typ actionType TYPE_DB_ROLLBACK $ nie jest obsługiwany? Po prostu brakuje go w instrukcji switch. Nie masz gdzieś przykładowego skryptu przywracania zmian? A może po prostu programowo odwraca kroki konfiguracji od skryptu instalacyjnego? – kalenjordan

+1

Och, masz rację. Z metody '_modifyResourceDb', jeśli jest jasne, że wycofanie i odinstalowanie nie działa :) – vsushkov

+0

ALE możesz napisać własną klasę instalacji, która będzie obsługiwać wycofywanie i odinstalowywanie (zobacz' Mage_Core_Model_Resource_Setup :: applyAllUpdates() ', ciąg' $ setupClass = new $ className ($ resName); ') – vsushkov