Jak cofnąć aktualizację modułu PrestaShop po nieudanej aktualizacji

411 wyświetleń

Gdy aktualizacja modułu poszła nie tak

Zaktualizowałeś moduł PrestaShop i teraz coś nie działa. Może checkout przestał działać, strona główna wyrzuca błędy, lub panel administracyjny przestał odpowiadać. Aktualizacje modułów mogą się nie powieść z wielu powodów - niezgodne wersje PHP, konflikty z innymi modułami, błędy migracji bazy danych lub po prostu bugi w nowej wersji. Niezależnie od przyczyny, musisz szybko cofnąć zmiany, aby przywrócić funkcjonalność swojego sklepu.

Niestety, PrestaShop nie zawiera wbudowanego przycisku "cofnij" dla aktualizacji modułów. Nie ma natywnej historii wersji ani automatycznego mechanizmu rollbacku dla poszczególnych modułów. Oznacza to, że musisz przeprowadzić downgrade ręcznie.

Zanim zaczniesz - bezpieczeństwo przede wszystkim

  1. Włącz tryb konserwacji - Parametry sklepu > Ogólne > Konserwacja
  2. Utwórz kopię zapasową bazy danych
  3. Udokumentuj obecny błąd

Metoda 1 - Ponowna instalacja poprzedniej wersji przez Back Office

  1. Przejdź do Moduły > Menedżer modułów
  2. Znajdź problematyczny moduł i kliknij Odinstaluj (NIE "Usuń" - odinstalowanie zachowuje dane modułu w bazie)
  3. Kliknij Prześlij moduł
  4. Prześlij plik ZIP poprzedniej działającej wersji
  5. Zainstaluj i skonfiguruj moduł

Gdzie zdobyć poprzednią wersję

  • Twój email - Większość sprzedawców modułów wysyła linki do pobrania z każdym zakupem
  • Konto na marketplace - Na PrestaShop Addons i w marketplace'ach firm trzecich jak mypresta.rocks możesz pobrać poprzednie wersje z historii zamówień
  • Twoje kopie zapasowe - Wyodrębnij folder modułu z archiwum kopii zapasowej
  • Skontaktuj się z deweloperem - Deweloperzy modułów zazwyczaj mogą udostępnić starsze wersje

Metoda 2 - Podmiana plików przez FTP/SFTP

  1. Połącz się z serwerem przez FTP/SFTP za pomocą klienta jak FileZilla
  2. Przejdź do /modules/ w katalogu instalacji PrestaShop
  3. Znajdź folder modułu
  4. Zmień nazwę obecnego folderu - np. mymodule na mymodule_zepsuty
  5. Prześlij pliki poprzedniej wersji do nowego folderu mymodule
  6. Ustaw prawidłowe uprawnienia - katalogi na 755, pliki na 644
  7. Wyczyść cache PrestaShop

Metoda 3 - Z linii poleceń

# Połącz się przez SSH
ssh user@twojserwer.com

# Przejdź do katalogu głównego PrestaShop
cd /var/www/html/prestashop

# Zabezpiecz zepsuty moduł
mv modules/mymodule modules/mymodule_zepsuty_$(date +%Y%m%d)

# Rozpakuj poprzednią wersję
unzip /sciezka/do/mymodule_v1.2.3.zip -d modules/

# Ustaw prawidłowe uprawnienia
find modules/mymodule -type d -exec chmod 755 {} \;
find modules/mymodule -type f -exec chmod 644 {} \;
chown -R www-data:www-data modules/mymodule

# Wyczyść cache
rm -rf var/cache/prod/* var/cache/dev/*

Metoda 4 - Pełny rollback bazy danych

Jeśli aktualizacja modułu zawierała migracje bazy danych, musisz przywrócić kopię zapasową bazy danych sprzed aktualizacji.

Kiedy potrzebujesz rollbacku bazy danych

  • Moduł utworzył nowe tabele bazy danych
  • Moduł zmienił istniejące struktury tabel
  • Moduł wstawił lub zmodyfikował wartości konfiguracyjne

Ostrzeżenie - Pełne przywrócenie bazy danych cofnie WSZYSTKIE zmiany od czasu kopii zapasowej, łącznie z nowymi zamówieniami i rejestracjami klientów.

Metoda 5 - Ręczne czyszczenie bazy danych

// Szukaj plików typu:
// modules/mymodule/upgrade/upgrade-2.0.0.php

public function upgrade($version)
{
    if (version_compare($version, '2.0.0', '<')) {
        Db::getInstance()->execute('ALTER TABLE `' . _DB_PREFIX_ . 'mymodule` 
            ADD COLUMN `new_field` VARCHAR(255)');
    }
}

Po downgrade - niezbędne porządki

Wyczyść wszystkie cache

  1. Cache Smarty
  2. OPcache - Restart PHP-FPM lub Apache
  3. Cache CDN
  4. Cache przeglądarki - Testuj w trybie incognito

Zweryfikuj wersję modułu

Po downgrade sprawdź, czy PrestaShop rozpoznaje prawidłową wersję.

Testuj dokładnie

  • Konkretną funkcjonalność modułu
  • Proces checkout od początku do końca
  • Strony administracyjne z treścią modułu
  • Widoki mobilne i desktopowe
  • Wydajność

Zapobieganie przyszłym problemom z aktualizacjami

  • Zawsze twórz kopię zapasową przed aktualizacją
  • Testuj aktualizacje na środowisku stagingowym
  • Czytaj changelog
  • Zachowuj poprzednie wersje
  • Sprawdzaj kompatybilność

Kiedy skontaktować się z deweloperem modułu

Jeśli żadna z powyższych metod nie rozwiąże problemu, skontaktuj się z deweloperem podając wersję PrestaShop, wersję PHP, wersje modułu i dokładne komunikaty błędów.

Czy ta odpowiedź była pomocna?

Masz jeszcze pytania?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top