Jak cofnąć aktualizację modułu PrestaShop po nieudanej aktualizacji
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
- Włącz tryb konserwacji - Parametry sklepu > Ogólne > Konserwacja
- Utwórz kopię zapasową bazy danych
- Udokumentuj obecny błąd
Metoda 1 - Ponowna instalacja poprzedniej wersji przez Back Office
- Przejdź do Moduły > Menedżer modułów
- Znajdź problematyczny moduł i kliknij Odinstaluj (NIE "Usuń" - odinstalowanie zachowuje dane modułu w bazie)
- Kliknij Prześlij moduł
- Prześlij plik ZIP poprzedniej działającej wersji
- 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
- Połącz się z serwerem przez FTP/SFTP za pomocą klienta jak FileZilla
- Przejdź do
/modules/w katalogu instalacji PrestaShop - Znajdź folder modułu
- Zmień nazwę obecnego folderu - np.
mymodulenamymodule_zepsuty - Prześlij pliki poprzedniej wersji do nowego folderu
mymodule - Ustaw prawidłowe uprawnienia - katalogi na 755, pliki na 644
- 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
- Cache Smarty
- OPcache - Restart PHP-FPM lub Apache
- Cache CDN
- 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.