Zawartość artykułu
Jak się dokładnie objawia ten błąd?
Błąd występuje podczas próby aktualizacji sklepu w wersji PrestaShop 1.6 do 1.7 poprzez moduł „Aktualizacja 1 kliknięciem” (nazwa kodowa: autoupgrade
). Chodzi przeważnie o wersję v4.14.3. Podczas próby aktualizacji do wersji 1.7 pojawia się problem:
All files upgraded. Now upgrading database... [Ajax / Server Error for action upgradeDb] textStatus: "error " errorThrown:"Internal Server Error " jqXHR: " 500 Server Error Oops, something went wrong. Try to refresh this page or feel free to contact us if the problem persists.
Strona modułu zostaje dziwacznie zawężona, proces akutalizacji zostaje przerwany, a sklep po przeładowaniu jest uszkodzony. Kompletnie nie da się zalogować do admina ani wejść na stronę sklepu.
Zastanówmy się co może być przyczyną błędu?
Możliwe przyczyny błędu
Struktura tabel w bazie danych odmienna od oryginalnej
Jeśli na sklepie są zainstalowane specyficzne moduły, które dodają nowe kolumny do tabel produktowych czy innych może to być przyczyną błędu. Najlepiej wyeksportować bazę w PhpMyAdmin bez danych. Tzn. samą strukturę:
Następnie taki plik tekstowy porównać z analogicznym plikem eksportu z „pudełkowej” instalacji PrestaShop o tej samej wersji. Jakimś programem do porównywania 2 plików tekstowych. Np. w edytorze Eclipse – poprzez SVN. Wtedy łatwo można zobaczyć nadmiarowe kolumny w kluczowych tabelach.
Zmiana wersji PHP i inne parametry serwera.
- Ustaw wersję php 7.3, jeśli chcesz podnieść sklep do wersji 1.7.
- Sprawdź też limit pamięci – najlepiej aby miał: 128M
- Maksymalny czas wykonywania: 180
Lokalne archiwum w module autoupgrade
Wykonaj aktualizację przez lokalne archiwum ZIP. Chodzi o to ustawienie:
Jednak najpierw należy pobrać plik do wskazanej lokalizacji inaczej – pojawi się błąd:
Niestandardowe moduły
Usuń jak najwięcej niestandarowych modułów – może nastąpić próba ich aktualizacji, która zawiedzie. Najlepiej zostaw tylko moduły od PrestaShop a dla 1.7 (lub 8.x) przygotuj moduły które są do nich już dostosowane.
Wybór przeglądarki
Spróbuj wykonać to w Google Chrome. Może być ona mniej podatna na wysypanie się błędów podczas akutalizacji.
Debugowanie
Włącz debugowanie i pokazywanie błędów. Wykonasz to w pliku wkazanym w tym artykule:
Błędy włączysz też w tym samym pliku:
Niepoprawne dane w tabelach
Jeśli ww. sposoby zawiodą – spróbuj usunąć przed aktualizacją dane na których nie będzie Ci zależeć. Np. zamówienia (jeśli mają być zliczane od nowa). Po prostu wyczyść w PhpMyAdmin tabele zaczynające sie od nazw ps_order*
Konkluzja
Proces aktualizacji ze starych wersji PrestaShop jest dość zawily i niewdzięczny. Wymaga też wykonania odp. kopii bezpieczeństwa oraz niesłychanej precyzji. Rozważ skorzystanie z naszej oferty przy wykonaniu takiego zlecenia. Nasz zespół wykonywał akutalizacje już od PrestaShop 1.3 (!). Więc widzieliśmy różne cuda 😉
W powyższym zamówieniu możesz określić wersję PrestaShop oraz inne usługi. Wycena jest orientacyjna. Zapraszamy do kontaktu bezpośredniego.