Zawartość artykułu
Opis problemu
Jeśli wykonujesz aktualizację sklepu PrestaShop za pośrednictwem modułu Aktualizacja 1-Kliknięciem – 1-Click Upgrade możesz natknąć się na enigmatyczny problem. Objawia się on błędem krytycznym, który jest sygnalizowany przez komunikat w logu zdarzeń:
) NOT NULL, CHANGE customer_name customer_name VARCHAR(64) NOT NULL, CHANGE grade grade INT NOT NULL': SQLSTATE[01000]: Warning: 1265 Data truncated for column 'customer_name' at row 3 In PDOConnection.php line 90: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'customer_name' at row 3 In PDOConnection.php line 88: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'customer_name' at row 3 prestashop:schema:update-without-foreign [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--id_shop [ID_SHOP]] [--id_shop_group [ID_SHOP_GROUP]] [--] Error during database upgrade. You may need to restore your database. Error upgrading Doctrine schema
Następnie wyświetlany jest komunikat o potrzebie / możliwości wykonania przywrócenia kopii bezpieczeństwa:
Niestety skutkuje to uszkodzeniem sklepu i konieczne jest przywrócenie stanu z przed aktualizacji.
UWAGA! Samodzielne wykonywanie akualizacji sklepu pociąga za sobą przykre konsekwencje jak opisane powyżej. Twój sklep do momentu przywrócenia kopii bezpieczeństwa jest nieczynny. Tracisz klientów i nowe zamówienia. Tracisz także reputację. Rozważ powierzenie takiego zadania specjalistom. Ceny podane za takie zlecenie są orientacyjne. Zapraszamy do kontaktu i indywidualnej wyceny:
Przyczyna problemu
Pytanie czy można sobie poradzić z tym błędem. Jak się okazuje – tak. Problematyczny okazuje się moduł (co ciekawe autorstwa PrestaShop):
Komentarze produktu (productcomments)
Recepta
Aby wykonać taką akutalizację bez problemów wykonaj następujące czynności:
- Przywróć sklep do stanu z przed Twoich czynności. Najlepiej zgłoś sie do administratora Twojego serwera w tej sprawie.
UWAGA! Przywrócenie dotyczy zarówno bazy danych jak i plików! Taką dyspozycję zleć adminowi.
- Przed rozpoczęciem akutalizacji znajdź ww. moduł Komentarze produktu i go usuń wraz z odinstalowaniem. Czyli znajdź go na liście i użyj przycisku „Odinstaluj” następnie potwierdź to okno:
UWAGA! Jeśli zależy Ci na danych zawartych w tym module – najpierw przeczytaj poradnik na końcu tego artykułu.
- Wykonaj aktualizację. Teraz powinna ona juz przebiegnąć prawidłowo (przynajmniej ww. błąd już nie wystąpi)
- Ciesz się nową wersją sklepu PrestaShop 😉
Chcę zatrzymać stare komentarze do produków w nowej wersji sklepu – jak to zrobić?
1) W tym celu przed wykonaniem aktualizacji i usunięciem modułu Komentarze produktu zaloguj się do narzędzia PhpMyAdmin na Twoim serwerze.
Jak ustalić link do PMA na serwerze przedstawialiśmy np. w tym artykule:
2) Zaznacz tabele widoczne na screenie:
3) Na dole listy tabel wybierz EXPORT następnie w secji eksprotu w PhpMyAdmin zaznacz jedynie dane (DATA) dla tych tabel (bez struktury – STRUCTURE):
4) Pobierz plik SQL.
5) Wykonaj akutalizację sklepu opisaną w poprzedniej sekcji tego artykułu (wraz z usunięciem modułu Komentarze produktu )
6) Na nowej wersji sklepu (już po akutalizacji) zainstaluj z Katalogu Modułów moduł Komentarze produktu. Co oczywiste będzie on pusty – pozbawiony wcześniej dodanych komentarzy.
7) Zaloguj się do PhpMyAdmin i wgraj plik SQL.
Oczywiście jeśli zminieniła się struktura w nowej wersji modułu dane mogą wymagać modyfikacji. Wtedy przed pobraniem pliku SQL (pkt. 4) zaznacz także strukturę do pobrania. Na testowej tabeli odp. dostosuj strukturę tabel do nowej wersji modułu Komentarze produktu i wgraj plik z danymi (DATA) ponownie. Ale to mało prawdopodobne.
8) Jeśli masz szczęście – stare komentarze powinny być widoczne 😉
Powodzenia !
grafika: wallpaperup.com