Aggiornamento del core di Drupal tramite Drush
Questa documentazione è obsoleta. Aiuta a renderla aggiornata.
Prima di iniziare
È consigliato utilizzare Composer per gestire le dipendenze di Drupal; consulta Utilizzare Composer con Drupal per maggiori informazioni. Drush 9 non supporta più l’aggiornamento di Drupal e delega questa funzione a Composer. Pertanto, è raccomandato usare Composer per aggiornare Drupal. Tuttavia, se hai usato Drush per molto tempo, puoi ancora utilizzare Drush 8 (versione 8.14 o successiva) per aggiornare Drupal 8.
P.S.: L’introduzione a queste istruzioni riassume tutte le opzioni di aggiornamento disponibili.
Torna sempre al backup se incontri un errore fatale durante il processo di aggiornamento.
Aggiornamento del core di Drupal 8
Procedura per aggiornare il core di Drupal 8 utilizzando Drush 8.x. Drush è la shell CLI per Drupal.
1. Esegui il backup dei file e del database. Con Drush, esegui il comando:
drush archive-dump
Note:
- È fondamentale creare un backup prima dell’aggiornamento. Se qualcosa va storto durante o dopo l’operazione, potrai ripristinare rapidamente la versione precedente.
- Il comando drush archive-dump crea un archivio .tar.gz con i file e il database. È un comando deprecato e previsto per la rimozione in versioni future di Drush. Include solo i file presenti nella directory /web.
2. Verifica la disponibilità di aggiornamenti:
drush pm-updatestatus
- Nota: alias del comando ups
- Nota: questo comando non è consigliato per installazioni gestite da Composer, usa invece composer show.
3. Attiva la modalità di manutenzione:
drush state-set system.maintenance_mode 1
Alias del comando: sset
4. Pulisci la cache:
drush cache-rebuild
- Alias del comando: cr
- Questo comando svuota le tabelle cache_* nel database Drupal e ricostruisce il container del sito.
5. Scegli una o più delle opzioni seguenti per eseguire gli aggiornamenti. Il comando pm-update (alias up) aggiorna il codice e applica eventuali aggiornamenti del database, combinando le funzioni di pm-updatecode e updatedb.
Opzione: aggiornare il core di Drupal 8
drush pm-update drupal
Opzione: aggiornare il core di Drupal 8 a una versione di sviluppo (solo per test e patching, non per produzione)
drush pm-update drupal-8.5.x-dev
Opzione: aggiornare un singolo modulo
drush pm-update module_name
Opzione: aggiornare solo le versioni di sicurezza
drush pm-update --security-only
6. Riapplica manualmente eventuali modifiche ai file (es. .htaccess, composer.json, robots.txt). Drush non li aggiorna automaticamente.
7. Riapplica eventuali patch personalizzate che erano state applicate prima dell’aggiornamento, se non sono già state incluse nel core.
Esempio per individuare i commit delle patch:
git log --oneline --reverse core
ee2bf8dd Issue #18: Updated Drupal core from 8.3.4 to 8.3.5. 267e3ad0 Issue #27: Applied patch from https://www.drupal.org/project/drupal/issues/2174633#comment-12291691. 718ecba5 Issue #9: Applied patch from https://www.drupal.org/project/drupal/issues/2906229#comment-12496488.
Per ogni patch applicata, usa git cherry-pick
(risolvendo eventuali conflitti se necessario) in ordine cronologico:
git cherry-pick 267e3ad0 git cherry-pick 718ecba5
8. Se usi Composer per gestire le librerie PHP (richiesto da alcuni moduli contrib), aggiorna la directory /vendor con:
composer update drupal/core --with-dependencies
9. Applica eventuali aggiornamenti del database:
drush updatedb
Alias del comando: updb
10. Verifica che il tuo sito funzioni correttamente:
- Controlla la pagina Rapporto sullo stato in Drupal
- Visita le pagine principali del sito nel browser per assicurarti che non ci siano errori
11. Disattiva la modalità di manutenzione:
drush state-set system.maintenance_mode 0
12. Pulisci nuovamente la cache:
drush cache-rebuild
13. Fatto! Hai aggiornato con successo il tuo sito Drupal 8 usando Drush :)