PS PrestaShop Średnio zaawansowany

DataFirefly Staging Pro: kompletny przewodnik

Klonowanie, testowanie i wypychanie na produkcję: instalacja, tworzenie stagingu, opcje ochrony, selektywny push i rollback dla PrestaShop 8 i 9.

Zaktualizowano Wersja modułu 1.0.0

Staging Pro tworzy kompletną kopię Twojego sklepu (pliki i baza danych) w chronionym podkatalogu obecnego hostingu, bez żadnych timeoutów, dzięki silnikowi kopiowania partiami. Testujesz moduły, szablony i aktualizacje w pełni bezpiecznie, a następnie przenosisz zmiany na produkcję tabela po tabeli, z automatycznym backupem i rollbackiem jednym kliknięciem. Ten przewodnik obejmuje instalację, tworzenie stagingu, opcje ochrony, push do produkcji i rollback.

Instalacja

  1. Pobierz archiwum dfstagingpro.zip ze swojego konta DataFirefly.
  2. Panel administracyjny PrestaShop → ModułyWgraj moduł → wyślij plik ZIP.
  3. Przy instalacji moduł tworzy tabele df_staging_env i df_staging_log, rejestruje swoje hooki i dodaje zakładkę Parametry zaawansowane → Staging Pro.

Zgodny z PrestaShop 8.0 do 9.x. PHP musi mieć prawo zapisu w katalogu głównym sklepu (tworzenie podkatalogu stagingu), a użytkownik MySQL musi mieć uprawnienia CREATE, DROP i RENAME TABLE, co jest standardem w typowej instalacji PrestaShop. Brak zależności Composer.

Jak działa staging

Środowisko stagingowe powstaje w podkatalogu w katalogu głównym Twojego sklepu (na przykład /staging-v2/) i korzysta z dedykowanego prefiksu tabel (na przykład dfs1_) w tej samej bazie danych co produkcja. Nie potrzebujesz zatem ani drugiego serwera, ani nowego dostępu MySQL, ani konfiguracji DNS.

Silnik kopiowania pracuje w kilkusekundowych partiach, po czym oddaje sterowanie i wznawia dokładnie w miejscu, w którym przerwał: kopiowanie plików przez trwałą kolejkę, klonowanie bazy pakietami wierszy. Sklep ważący kilka gigabajtów klonuje się w ten sposób bez błędów, nawet na hostingu współdzielonym z niskim max_execution_time.

Tworzenie stagingu

Przejdź do Parametry zaawansowane → Staging Pro, a następnie do panelu tworzenia:

  1. Wpisz nazwę (wyłącznie małe litery, cyfry i myślniki, na przykład v2). Adresem stagingu będzie twoj-sklep.pl/staging-v2/.
  2. Wybierz opcje ochrony i kopiowania (opisane niżej).
  3. Kliknij Utwórz. Postęp wyświetla się na żywo wraz z paskiem postępu.

Po zakończeniu procesu adres stagingu oraz ewentualne dane logowania htpasswd wyświetlają się w wierszu środowiska.

Opcje ochrony i kopiowania

  • Chroń przez .htpasswd: dodaje uwierzytelnianie HTTP (użytkownik staging). Hasło możesz wpisać albo wygenerować automatycznie, po czym wyświetli się na pulpicie.
  • Wyłącz e-maile: odcina wychodzące wiadomości ze stagingu (PS_MAIL_METHOD = 3). Zero ryzyka napisania do prawdziwego klienta.
  • Wyłącz płatności: dezaktywuje i odpina od hooków znane moduły płatności na stagingu.
  • Pomiń statystyki: wyklucza z kopii duże i nieistotne tabele (logowania, logi, porzucone koszyki), co znacznie przyspiesza kopiowanie.
  • Symlink katalogu img/: tworzy dowiązanie symboliczne do obrazów zamiast ich kopiowania, co daje ogromną oszczędność miejsca na dysku.
  • Tryb konserwacji: przełącza staging w tryb konserwacji z Twoim adresem IP administratora na białej liście.

Od chwili utworzenia każdy staging automatycznie otrzymuje nagłówek X-Robots-Tag: noindex, meta noindex i blokujący robots.txt, a także pomarańczowy baner STAGING na froncie i w panelu administracyjnym. Twoje środowiska testowe nie zostaną zaindeksowane przez Google.

Opcja symlinku img/ współdzieli katalog obrazów z produkcją: zmiana albo usunięcie obrazu po stronie stagingu wpływa również na sklep produkcyjny. Rezerwuj ją dla testów, które nie dotyczą obrazów.

Silnik kopiowania partiami

Tworzenie stagingu przebiega w kilku etapach, każdy z własnym budżetem czasu i automatycznym wznawianiem: przygotowanie, kopiowanie plików, klonowanie bazy danych, przepisywanie adresów URL, konfiguracja i ochrona, a na końcu finalizacja. Przepisywanie adresów obejmuje shop_url, konfigurację (w tym wartości serializowane i JSON, obsługiwane bez uszkodzeń), a także treści CMS, produkty, kategorie, marki, dostawców i sklepy.

Jeśli zamkniesz stronę w trakcie tworzenia, środowisko pozostaje w toku i automatycznie wznawia kopiowanie po ponownym otwarciu pulpitu, dokładnie w miejscu, w którym przerwało.

Odświeżanie, wiele środowisk i usuwanie

  • Refresh: odbudowuje istniejący staging z aktualnego stanu produkcji (usunięcie, a następnie ponowne utworzenie katalogu i prefiksu), jednym kliknięciem.
  • Wiele środowisk: utwórz tyle stagingów, ile potrzebujesz (v2, hotfix, test modułu), każdy niezależny.
  • Usuwanie: kasuje katalog i tabele środowiska w sposób budżetowany, bez timeoutu.

Push do produkcji

Gdy testy zakończą się powodzeniem, przycisk Push pozwala przenieść zmiany na produkcję tabela po tabeli:

  1. Kliknij Push w wierszu środowiska: wyświetli się lista tabel wraz z liczbą wierszy każdej z nich.
  2. Zaznacz dokładnie tabele do przeniesienia.
  3. Potwierdź. Przed każdą podmianą odpowiadająca tabela produkcyjna jest automatycznie zapisywana przez zmianę nazwy ze znacznikiem czasu na prefiks dfbak{znacznik_czasu}_.

Adresy URL są przepisywane w kierunku ze stagingu na produkcję podczas transferu. Tabele krytyczne (shop_url, configuration, shop, sesje i tabele modułu) są chronione i nigdy nie mogą zostać wypchnięte.

Push zmienia Twój sklep produkcyjny. Automatyczny backup chroni podmieniane tabele, ale zawsze weryfikuj swój wybór. Unikaj wypychania tabel zamówień i klientów, jeśli produkcja rejestrowała sprzedaż od momentu utworzenia stagingu.

Rollback

Przycisk Rollback przywraca produkcję z ostatniego backupu pusha, jednym kliknięciem. Moduł zmienia nazwy tabel zapasowych dfbak…_, aby wróciły na swoje pierwotne miejsce.

Po zatwierdzeniu i ustabilizowaniu pusha usuń stare tabele dfbak* (przez phpMyAdmin albo dowolnego klienta SQL), aby zwolnić miejsce w bazie danych.

Zabezpieczenia i dziennik

  • Wszystkie działania są zablokowane, jeśli bieżący sklep sam jest stagingiem, co zapobiega operacjom kaskadowym.
  • Szczegółowy dziennik jest dostępny dla każdego środowiska przez przycisk Logi.
  • Ponieważ robots.txt w podkatalogu nie jest respektowany przez wyszukiwarki, rzeczywista ochrona przed indeksacją opiera się na nagłówku X-Robots-Tag i meta noindex; opcja .htpasswd pozostaje najpewniejszym zabezpieczeniem.

Zgodność i uwagi techniczne

  • PrestaShop 8.0 do 9.x, zgodny z hostingiem współdzielonym i trybem wielojęzycznym.
  • Kontroler administracyjny w trybie legacy (bez kontrolera Symfony) dla zgodności z PS8 i PS9.
  • Endpointy AJAX w panelu administracyjnym przez czwarty argument getAdminLink(); odpowiedź JSON zwracana przez dedykowaną metodę.
  • Staging to podkatalog w katalogu głównym oraz prefiks tabel dfs{id}_ w tej samej bazie MySQL.
  • Backupy pusha są oznaczane znacznikiem czasu w prefiksie dfbak{YmdHis}_ i należy je usuwać po zatwierdzeniu.

FAQ i rozwiązywanie problemów

Czy moduł działa na hostingu współdzielonym? Tak. Silnik kopiowania partiami z automatycznym wznawianiem eliminuje timeouty, niezależnie od wartości max_execution_time na serwerze.

Tworzenie zostało przerwane, co zrobić? Otwórz ponownie pulpit Staging Pro: środowisko automatycznie wznowi kopiowanie w miejscu, w którym przerwało.

Czy staging może wysyłać e-maile do moich klientów? Nie, jeśli opcja „Wyłącz e-maile” jest aktywna (zalecane): wychodzące wiadomości są odcięte na stagingu.

Jak cofnąć zmiany po pushu? Użyj przycisku Rollback, który przywraca ostatni automatyczny backup. Następnie usuń nieaktualne tabele dfbak*.

Czy mogę utworzyć kilka stagingów jednocześnie? Tak, liczba środowisk jest nieograniczona, a każde z nich działa całkowicie niezależnie.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia