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.
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
- Pobierz archiwum
dfstagingpro.zipze swojego konta DataFirefly. - Panel administracyjny PrestaShop → Moduły → Wgraj moduł → wyślij plik ZIP.
- Przy instalacji moduł tworzy tabele
df_staging_envidf_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:
- Wpisz nazwę (wyłącznie małe litery, cyfry i myślniki, na przykład
v2). Adresem stagingu będzietwoj-sklep.pl/staging-v2/. - Wybierz opcje ochrony i kopiowania (opisane niżej).
- 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:
- Kliknij Push w wierszu środowiska: wyświetli się lista tabel wraz z liczbą wierszy każdej z nich.
- Zaznacz dokładnie tabele do przeniesienia.
- 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.txtw podkatalogu nie jest respektowany przez wyszukiwarki, rzeczywista ochrona przed indeksacją opiera się na nagłówkuX-Robots-Tagi metanoindex; opcja.htpasswdpozostaje 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.