Zawartość artykułu
Wersje sklepu i modułu
Artykuł dotyczy:
- sklepu PrestaShop w wersji: 1.6.1.4
- modułu
autoupgrade
w wersji: v1.6.7 (link do pobrania w dalszej części artykułu)
Blokada akutalizacji – za stara wersja modułu
Podczas aktualizacji starych wersji PrestaShop 1.6 możemy natrafić na sytuację, że moduł „Aktualizacja 1 kliknięciem” (nazwa kodowa autoupgrade
) wymaga.. zakutalizowania samego siebie:
Bez tej czynności akutalizacja jest zablokowana i nic nie możemy zrobić (nie da się tego pominąć).
Jest to o tyle problematyczne, że nowa wersja może nie zadzialać poprawnie z naszą starą wersją PrestaShop. Może np. być niekompatybilna z zastaną wersją PHP na serwerze.
Po za tym musimy pozyskać nową wersję ze strony:
zainstalować ją, a i tak nie zawsze zakutalizuje nam sklep tak jak chcemy.
Nowsza wersja autoupgrade
może wymusić rollback podczas aktualizacji (konieczność cofnięcia czynności) i ogólnie mamy niezłe bagno ze sklepem – częsciowo zakutalizowane moduły, niedokończona akutalizacja bazy itp.
Poruszaliśmy to m.in. w artykule:
Przedstawiamy tu prosty sposób na obejście tego problemu 🙂 Po prostu odpowiednio „shackuj” moduł autoupgrade
😀
Oferta akutalizacji PrestaShop
UWAGA! Samodzielne przeprowadzanie akutalizacji sklepu niesie ze sobą niebezpieczeństwo poważnego uszkodzenia instalacji PrestaShop. Spowoduje to zatrzymanie sprzedaży i straty pieniężne (brak zamówień). Jeśli nie czujesz się na siłach aby wykonać taki proces rozważ powierzenie jej profesjonalistom:
WAŻNE – ceny podane przy tej usłudze są orientacyjne. Każde zlecenie jest wyceniane indywidualnie!
Zapewniamy kopię bezpieczeństwa bazy i plików przed wykonaniem jakichkolwiek czynności. Wykonujemy akutalizacje do najnowszych gałęzi 1.7 oraz jeszcze do 1.6.
SHackowanie modułu
Wracając do modyfikacji, otwórz plik:
modules/autoupgrade/AdminSelfUpgrade.php
Następnie znajdź kod:
public function checkAutoupgradeLastVersion() { if ($this->getModuleVersion()) $this->lastAutoupgradeVersion = version_compare($this->module_version, $this->upgrader->autoupgrade_last_version, '>='); else $this->lastAutoupgradeVersion = true; return $this->lastAutoupgradeVersion; }
I przed wystąpieniem kodu return
wstaw wymuszenie zwracania true
. Czyli:
public function checkAutoupgradeLastVersion() { if ($this->getModuleVersion()) $this->lastAutoupgradeVersion = version_compare($this->module_version, $this->upgrader->autoupgrade_last_version, '>='); else $this->lastAutoupgradeVersion = true; return true; return $this->lastAutoupgradeVersion; }
W tym momencie moduł uznaje swoja wersje za akutalną i możesz spróbować wykonać akutalizację za pomocą zastanej wersji modułu autoupgrade
🙂
Jeśli chcesz to cofnąć po prostu zakomentuj lub usuń wstawioną nową linię.
Co ciekawe – moduł autoupgrade
zostanie wręcz pominięty na liście modułów do akutalizacji. I tak po skończonym procesie podnoszenia wersji PrestaShop na liscie modułów jako jedyny moduł nieakutalny będzie widoczny moduł „Aktualizacja 1 kliknięciem”:
Stara wersja modułu do pobrania
Jeśli interesuje Cię pobranie użytej wersji modułu autoupgrade link do pliku ZIP znajduje się poniżej:
[suma MD5: bbe51f9be6c2c5add580e65147e4ea4e]
Nam udało się z powodzeniem zakualizować sklep PrestaShop 1.6.1.4 do 1.6.1.24 za jego pośrednictwem 🙂
Powodzenia!
Cześć,
Twój artykuł pomógł mi w pierwszej części aktualizacji, miałam dokładnie ten sam błąd, że moduł wymagał ciągłej aktualizacji. Udało mi się zaktualizować sklep do wersji 1.6.1.24, chciałam teraz przejść do aktualizacji na prestę 1.7 jednak mam dalej ten błąd, moduł się jednak zmienił (korzystałam z wersji 4.11.0) i nie mogę teraz tego zmienić, czy jest jakaś szansa na obejście tego problemu?
Czyli chcesz @Justyna przywrócić wersję 4.11.0 modułu autoupgrade? Hmm a odinstalowanie bieżącej wersji tego modułu i wgrane 4.11.0 np. znalezionego w Internecie? Ewentualnie moze Twój dostawca hostingowy może przywrócić zawartość folderu modules/autoupgrade z przed zmian i taki moduł zainstaluj ponownie.
Hej, próbowałam już różnych wersji tego modułu pobierając z oficjalnego repozytorium i za każdym razem dostaję ten sam błąd – moduł wymaga aktualizacji, przez co nie mogę dokonać aktualizacji presty. Wyczytałam też, że aktualizacja presty do wersji 1.7 za pomocą tego modułu to nie jest dobry pomysł ponieważ zmieniła się w dużej mierze struktura plików i strona raczej nie zadziała. Sklep, który chcę zaaktualizować jest postawiony na szablonie – twórcy szablonu nie mają aktualizacji tego szablonu pod prestę 1.7 niestety. Czy mógłbyś mi doradzić w jaki inny sposób mogę dokonać aktualizacji – czy konieczne jest postawienie nowej presty, wgranie nowego szablonu i starej bazy danych? Tylko, że baza powinna zostać również zaaktualizowana i to myślałam właśnie, że zrobię za pomocą tego modułu autoupgrade i dopiero po tej aktualizacji wgram bazę na nowo postawioną prestę
Aby usunąć komunikat o aktualizacji trzeba zakomentować odp. linię kodu. Wtedy nie będzie blokady przy aktualizacji.
Dokładnie jak poniesiesz wersję z 1.6 do 1.7 to szablon z 1.6 nie zadziała. Potrzebny jest szablon obsługujący tą wersję.
Jeśli wykonasz aktualizację za pomocą modułu – zaktualizuje się baza danych, natomiast pozostałości po 1.6 w plikach mogą pozostać. Tak samo z modułami, hook’ami, przypisaniami modułów itp. najlepiej jest zakualizować do danej wersji 1.7 (obsługiwanej przez nowy szablon) i przenieść asortyment klienci, adresy, kategorie, produkty, stare zamówienia itp. do nowej bazy na czystej aktualizacji.
Tutaj jest to opisane jak zrobić: https://pskrk.com/aktualizacja-prestashop-do-1-7-dane-starego-sklepu-w-zupelnie-czystej-instalacji-ps17/
[…] PrestaShop 1.6 – moduł automatycznej akualizacji. Jak wymusić starą wersję modułu autoupg… […]