Drush – podstawowe komendy, które musisz znać

drupal

Drush to narzędzie wiersza poleceń, bez którego praca z Drupalem szybko staje się uciążliwa. Pozwala wykonywać typowe zadania administracyjne w kilka sekund, zamiast klikać przez rozbudowane menu w panelu. Poniżej znajdziesz praktyczne omówienie podstawowych komend, które przyspieszą codzienną pracę, pomogą w automatyzacji i zmniejszą liczbę błędów podczas zarządzania stroną opartą na Drupal.

Instalacja i pierwsze kroki z Drush

Wymagania wstępne i sposoby instalacji

Aby korzystać z Drush, potrzebujesz działającej instalacji Drupal, dostępu do wiersza poleceń oraz środowiska z PHP. Najczęściej Drush instaluje się lokalnie w projekcie, za pomocą Composer. Dzięki temu możesz mieć różne wersje Drush dla różnych projektów, co minimalizuje ryzyko konfliktów.

Podstawowy sposób instalacji w projekcie opartym na Composerze to użycie pakietu drush/drush w sekcji require-dev, co pozwala uruchamiać Drush przez lokalny plik wykonywalny w katalogu vendor. W nowszych projektach Drupal Starter Kit Drush jest zazwyczaj zainstalowany automatycznie, a jedyne, co musisz zrobić, to wywoływać go przez skrypt definowany w pliku konfiguracyjnym narzędzia do zarządzania zależnościami.

Sprawdzanie wersji i pomoc

Po zainstalowaniu warto sprawdzić, czy Drush działa i jaka jest jego wersja. Komenda drush –version wyświetli aktualnie używaną wersję oraz ścieżkę do pliku wykonywalnego. To ważne szczególnie na środowiskach, gdzie zainstalowanych jest kilka wersji Drush, na przykład jedna globalnie, a druga wewnątrz konkretnego projektu.

Aby poznać dostępne komendy, użyj polecenia drush list, które wypisze pełną listę komend oraz krótkie opisy. Z kolei drush help nazwa_komendy pozwala podejrzeć szczegółową dokumentację pojedynczej komendy, dostępne opcje oraz przykłady użycia. W praktyce warto często korzystać z wbudowanej pomocy – dokumentacja Drush jest dobrze utrzymana i zawiera aktualne informacje dopasowane do wersji narzędzia.

Struktura komend i aliasów

Drush wykorzystuje czytelną strukturę komend, składającą się najczęściej z grupy i nazwy, na przykład drush cache:rebuild albo skrót drush cr. Często spotkasz zarówno pełne nazwy, jak i krótsze aliasy, które przyspieszają codzienną pracę. W dokumentacji zwykle pokazywane są pełne nazwy, ale w praktyce administratorzy chętniej używają krótszych wariantów.

Aliasów możesz używać nie tylko do samych komend, lecz także do projektów i środowisk. Pliki aliasów pozwalają w prosty sposób definiować połączenia do różnych instancji tej samej strony – np. lokalnej, testowej i produkcyjnej. Dzięki temu wywołanie pojedynczej komendy z odpowiednim aliasem umożliwia zarządzanie wieloma środowiskami bez konieczności ręcznego logowania się przez SSH za każdym razem.

Bezpieczeństwo i dobre praktyki

Korzystanie z Drush oznacza bezpośrednią manipulację konfiguracją, bazą danych i plikami strony. Dlatego administrując produkcją, zawsze upewnij się, że komendy wykonujesz w odpowiednim środowisku. Pomagają w tym aliasy, ale również drobne nawyki, takie jak wyświetlanie aktualnego katalogu przed wykonaniem groźniejszej komendy albo definiowanie osobnych użytkowników systemowych o ograniczonych uprawnieniach.

Przed użyciem każdej komendy destrukcyjnej, zwłaszcza dotyczącej bazy danych czy cache, warto mieć aktualną kopię zapasową. Drush sam w sobie udostępnia narzędzia do backupu, ale to od ciebie zależy, czy zostaną zastosowane konsekwentnie. W środowiskach zautomatyzowanych dobrą praktyką jest umieszczanie komend Drush w skryptach CI/CD, tak by wszystkie operacje były powtarzalne i udokumentowane.

Praca z cache i konfiguracją

Podstawowe operacje na cache

Cache w Drupal ma kluczowe znaczenie dla wydajności, ale potrafi utrudnić debugowanie. Jedną z najczęściej używanych komend jest cache:rebuild, popularnie skracana do drush cr. Polecenie to przeładowuje całą konfigurację, odświeża kontener usług i czyści większość buforów. Po instalacji modułów, zmianach w kodzie lub plikach konfiguracyjnych komenda ta bywa niezbędna do poprawnego działania strony.

Oprócz globalnej odbudowy cache można czyścić poszczególne biny cache, co jest przydatne, gdy chcesz ograniczyć wpływ na całą stronę. Komendy związane z cache pozwalają także na sprawdzenie, jakie biny są obecnie wykorzystywane, oraz na selektywne czyszczenie tylko tego, co w danym momencie jest problematyczne. Dzięki temu unikasz niepotrzebnego przeciążania serwera, szczególnie w godzinach szczytu.

Eksport i import konfiguracji

System konfiguracji w Drupal, w połączeniu z Drush, umożliwia sprawne przenoszenie ustawień między środowiskami. Najczęściej używane są dwie komendy: config:export (drush cex) oraz config:import (drush cim). Pierwsza z nich zapisuje aktualną konfigurację z bazy danych do plików YAML w katalogu konfiguracyjnym. Druga odczytuje pliki i wprowadza zmiany do bazy danych strony.

Typowy proces pracy zakłada wprowadzanie zmian konfiguracyjnych na środowisku developerskim, eksport do plików, wersjonowanie ich w systemie kontroli wersji, a następnie import na środowisku testowym lub produkcyjnym. Drush ułatwia ten cykl, pozwalając wykonać eksport i import za pomocą pojedynczych komend, często używanych w skryptach automatyzujących wdrożenia.

Podgląd zmian konfiguracji

Przed importem konfiguracji warto sprawdzić, jakie dokładnie zmiany zostaną zastosowane. Drush udostępnia komendy pozwalające porównać aktualny stan bazy danych z plikami konfiguracyjnymi. Dzięki temu można wychwycić niepożądane zmiany jeszcze przed wdrożeniem na produkcję. Jest to szczególnie istotne w większych zespołach, gdzie wiele osób wprowadza równolegle swoje modyfikacje.

Możliwość podglądu różnic konfiguracji zmniejsza ryzyko nadpisania krytycznych ustawień, takich jak konfiguracja integracji z systemami zewnętrznymi czy specjalistyczne role użytkowników. W projektach o wysokiej złożoności warto przyjąć praktykę obowiązkowego przeglądu różnic konfiguracji w ramach procesu code review i wdrożeń.

Konfiguracja środowiskowa

Drush i system konfiguracji Drupala dobrze współgrają z koncepcją podziału na konfigurację globalną i specyficzną dla środowiska. Dzięki temu możemy trzymać w repozytorium jedynie bezpieczne ustawienia, podczas gdy dane wrażliwe lub specyficzne dla produkcji przechowujemy w plikach, które nie są wersjonowane. Drush pozwala również na ładowanie dodatkowych katalogów konfiguracyjnych, co daje dużą elastyczność w zarządzaniu różnymi profilami środowisk.

Łącząc Drush z odpowiednim podziałem konfiguracji, osiągasz większą spójność między instancjami tej samej strony, a jednocześnie chronisz dane poufne. To podejście sprawdza się szczególnie dobrze w infrastrukturach z wieloma środowiskami, gdzie ręczne utrzymywanie spójności stałoby się niewykonalne na dłuższą metę.

Zarządzanie modułami, motywami i użytkownikami

Instalowanie i wyłączanie modułów

Drush znacznie przyspiesza pracę z modułami. Zamiast przechodzić przez panel administracyjny, możesz włączać i wyłączać rozszerzenia za pomocą komend. Moduły aktywujesz zwykle poleceniem moduł:enable, a dezaktywujesz za pomocą module:disable. Narzędzie zadba o zależności między modułami, informując, jeśli któryś z nich wymaga wcześniejszej instalacji innego rozszerzenia.

W projektach, w których konfiguracja jest zarządzana przez pliki, często nie trzeba instalować modułów ręcznie – są one włączane wraz z importem konfiguracji. Mimo to komendy Drush pozostają przydatne podczas szybkich testów, gdy chcesz tymczasowo aktywować dodatkową funkcjonalność, a następnie ją wyłączyć. Drush umożliwia także jednoczesną instalację wielu modułów, co skraca czas przygotowania nowego środowiska.

Aktualizowanie rozszerzeń i bazy danych

Przy aktualizacji Drupal oraz modułów niezbędne jest wykonanie aktualizacji bazy danych. Drush udostępnia komendę updatedb (lub updb), która przeprowadza wymagane procedury aktualizacyjne. Po zmianie wersji modułu lub samego rdzenia Drupala, uruchomienie tej komendy pozwala zastosować nowe schematy tabel, migracje danych czy inne operacje przygotowane przez autorów rozszerzeń.

Warstwa aktualizacji w połączeniu z Drush jest wygodna także w środowiskach, gdzie nie ma bezpośredniego dostępu do panelu administracyjnego, ale możliwe jest uruchamianie komend w konsoli. Dzięki temu proces aktualizacji można w pełni zautomatyzować, włączając go w pipeline CI, który po wdrożeniu nowych plików kodu automatycznie wykonuje wymagane aktualizacje bazodanowe.

Zarządzanie użytkownikami i rolami

Drush pozwala również sprawnie zarządzać użytkownikami. Możesz tworzyć nowe konta, resetować hasła, zmieniać adresy e-mail, a także przypisywać role. W sytuacjach awaryjnych, na przykład gdy administrator traci dostęp do swojego konta, Drush umożliwia szybkie ustawienie nowego hasła lub nadanie tymczasowej roli administracyjnej innemu użytkownikowi.

Dostępne komendy obejmują tworzenie kont z poziomu wiersza poleceń, blokowanie i odblokowywanie użytkowników oraz listowanie kont z określonymi rolami. W dużych serwisach, gdzie zarządzanie użytkownikami przez interfejs może być powolne, wykorzystanie Drush pozwala wykonywać masowe operacje w znacznie krótszym czasie, często także w połączeniu z własnymi skryptami automatyzującymi.

Motywy i tryb konserwacji

Oprócz modułów Drush obsługuje również motywy. Możesz szybko ustawić nowy motyw domyślny, włączyć motyw administracyjny albo wyłączyć nieużywane skórki. Jest to szczególnie przydatne podczas migracji między motywami, gdy chcesz testować różne warianty wyglądu bez angażowania interfejsu graficznego.

Drush ułatwia także zarządzanie trybem konserwacji. Jedna komenda pozwala włączyć tryb niedostępności dla zwykłych użytkowników, podczas gdy administratorzy nadal mają dostęp do strony. Po zakończeniu prac możesz wyłączyć tryb konserwacji w równie prosty sposób. To bardzo istotne przy większych aktualizacjach lub operacjach na bazie danych, które mogłyby zaburzyć działanie serwisu dla odwiedzających.

Narzędzia developerskie i automatyzacja

Uruchamianie cron i zadania cykliczne

Drupal wykorzystuje mechanizm cron do realizacji zadań cyklicznych, takich jak indeksowanie treści, wysyłka powiadomień czy czyszczenie starych rekordów. Drush umożliwia ręczne uruchomienie crona za pomocą jednej komendy, co jest niezwykle wygodne podczas testowania konfiguracji lub diagnozowania problemów z zadaniami periodycznymi.

Integrując Drush z systemowym harmonogramem zadań, takim jak cron w systemach uniksowych, możesz całkowicie zastąpić wywoływanie crona przez ruch użytkowników. Zwiększa to przewidywalność działania zadań, a jednocześnie pozwala lepiej kontrolować obciążenie serwera, ponieważ zadania cykliczne wykonują się w z góry zaplanowanych oknach czasowych.

Logi, debugowanie i wyświetlanie informacji

Diagnostyka błędów jest znacznie prostsza, gdy korzystasz z komend Drush do przeglądania logów. Możesz w szybki sposób wyświetlić ostatnie komunikaty systemowe, filtrować je po poziomie powagi lub typie, a także czyścić logi, kiedy przestają być potrzebne. To skraca czas potrzebny na znalezienie przyczyny problemów występujących na stronie.

Drush udostępnia również komendy wyświetlające informacje o stanie systemu, zainstalowanych modułach, wersjach bibliotek i konfiguracji. Dzięki temu masz szybki dostęp do danych, które w innym wypadku wymagałyby przeklikiwania się przez kilka ekranów panelu administracyjnego. W sytuacjach krytycznych, takich jak awarie po aktualizacji, możliwość błyskawicznego pobrania szczegółowych informacji jest kluczowa.

Interaktywna powłoka i komendy własne

Zaawansowani twórcy często korzystają z możliwości tworzenia własnych komend Drush. Umożliwia to budowanie wewnętrznych narzędzi dopasowanych do specyfiki projektu, na przykład do czyszczenia konkretnych danych, generowania raportów czy integracji z zewnętrznymi systemami. Własne komendy można dołączać jako moduły do projektu i dzielić się nimi w zespole.

Niektóre wersje Drush oferują tryb bardziej interaktywny, pozwalający wywoływać podstawowe operacje bez konieczności każdorazowego wpisywania pełnej komendy. Choć w codziennej pracy większość administratorów woli klasyczne wywoływanie z linii poleceń, tryb interaktywny może ułatwić naukę Drush osobom, które dopiero zaczynają przygodę z Drupal i narzędziami konsolowymi.

Integracja z procesami CI/CD

Jedną z największych zalet Drush jest możliwość łatwej integracji z pipeline CI/CD. Komendy takie jak cache:rebuild, config:import czy updatedb często stają się standardowymi krokami w procesie wdrożenia. Skrypty uruchamiające te komendy można wywoływać zarówno na środowiskach testowych, jak i produkcyjnych, zapewniając powtarzalność oraz automatyzację kluczowych czynności administracyjnych.

Łącząc Drush z narzędziami takimi jak systemy do orkiestracji kontenerów, usługi do budowania i wdrażania aplikacji czy narzędzia monitorujące, budujesz solidny fundament pod stabilne, powtarzalne i przewidywalne wdrożenia. W efekcie zmniejszasz ryzyko błędów wynikających z manualnych działań i możesz skupić się na rozwijaniu funkcjonalności, zamiast na powtarzalnej obsłudze technicznej projektu.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz