logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builderâť—

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

âť—Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Aggiornamento del core tramite Composer

06/10/2025, by Ivan

Questa documentazione è incompleta. Aggiungi ulteriori informazioni.

Problemi nell’aggiornamento a Drupal 8.8.0 o versioni successive?
Modifiche importanti sono state introdotte in Drupal 8.8.0 nell’ambito dell’iniziativa Composer, che migliora notevolmente la gestione a lungo termine dei siti Drupal tramite Composer. Tuttavia, ci sono alcune considerazioni particolari da tenere a mente quando si esegue l’aggiornamento da versioni precedenti.

Primi passi

Per comprendere come Composer gestisce le dipendenze di Drupal, consulta la pagina Utilizzare Composer con Drupal. Per capire se Composer è il metodo più adatto al tuo aggiornamento, confronta le varie opzioni disponibili.

Per comodità, queste istruzioni includono anche i comandi Drush necessari per completare l’aggiornamento: molti utenti trovano Drush più rapido e semplice rispetto al pannello di amministrazione web.

Se si tratta di un sito Drupal esistente che non ha mai utilizzato Composer, assicurati prima che sia configurato per funzionare con Composer.

Aggiornare il core di Drupal 8

Per prima cosa, verifica se è disponibile un aggiornamento del core Drupal:

composer update --dry-run "drupal/*"

Questo comando mostra eventuali aggiornamenti minori o di patch disponibili. Se non appare alcuna riga che inizi con drupal/core, significa che Composer non rileva aggiornamenti. Se è presente drupal/core-recommended, prendi nota. Se è disponibile un aggiornamento, procedi con i comandi seguenti.

Aggiornamento in un solo passaggio

Se hai familiarità con gli aggiornamenti di Drupal e conosci le precauzioni da adottare, l’aggiornamento è semplice come:

composer update drupal/core --with-dependencies
drush updatedb
drush cache:rebuild

Sostituisci drupal/core con drupal/core-recommended se il tuo sito utilizza quest’ultimo pacchetto, come indicato nel tuo composer.json o nei risultati di composer update --dry-run.

Se il tuo sito è stato originariamente creato con drupal-composer/drupal-project, il comando sopra potrebbe non funzionare. Consulta l’elenco seguente.

Per aggiornare a Drupal 8.8.0 o versioni successive

La versione più recente di drupal-composer/drupal-project è compatibile con Drupal 8.8.x. Tuttavia, se il tuo sito è stato creato con versioni più vecchie (2019 o precedenti), potrebbero essere necessari alcuni interventi una tantum per il primo aggiornamento a 8.8.0 o versioni successive. Questi sono descritti nelle note speciali più avanti.

Se non hai installato Drupal 8 con Composer

Se il tuo sito Drupal non è stato installato con Composer, devi convertirlo in un progetto gestito da Composer per poter utilizzare i comandi indicati. Consulta Aggiungere Composer ai siti esistenti per una guida passo passo.

Istruzioni passo-passo per l’aggiornamento

Procedura completa per aggiornare il core di Drupal 8 con Composer:

1. Esegui sempre un backup dei file e del database prima dell’aggiornamento.

  • drush sql:dump effettua l’esportazione del database.
  • drush archive-dump è stato rimosso da Drush 9, quindi usa un normale strumento CLI per salvare i file (escludendo solitamente la cartella vendor).

2. Leggi le note di rilascio ufficiali. Alcuni moduli o temi potrebbero richiedere aggiornamenti per funzionare con la nuova versione minore di Drupal. Gli aggiornamenti di patch non dovrebbero richiederli.

3. Attiva la modalitĂ  manutenzione impostando system.maintenance_mode 1 e ricostruisci la cache.

4. Se alcuni moduli o temi necessitano di aggiornamento, segui le istruzioni per aggiornare i moduli.

5. Aggiorna il core di Drupal e le sue dipendenze:

composer update drupal/core --with-dependencies

Sostituisci drupal/core con drupal/core-recommended se utilizzi il pacchetto raccomandato. Se hai avviato il tuo sito con drupal-composer/drupal-project, consulta le note seguenti per eventuali passaggi aggiuntivi.

6. Applica gli aggiornamenti del database con drush updatedb e ricostruisci la cache con drush cache:rebuild.

7. Se utilizzi la gestione della configurazione, esporta la configurazione aggiornata con drush config:export --diff per visualizzare le modifiche introdotte dal nuovo core.

8. Verifica che il sito funzioni correttamente:

  • Controlla la pagina del rapporto sullo stato per eventuali errori.
  • Se il modulo Database Logging è attivo, esegui alcune operazioni e controlla i log per errori o avvisi.

9. Disattiva la modalitĂ  manutenzione con drush state:set system.maintenance_mode 0 e ricostruisci la cache.

10. Dopo aver riattivato il sito, testalo anche come utente anonimo.

In ambiente di produzione

  • Non è necessario ripetere l’intero processo: composer install installerĂ  le versioni precise definite in composer.lock.
  • Su server separati (dev/staging/production), assicurati di copiare composer.json e composer.lock e usa composer install --no-dev in produzione. L’opzione --no-dev evita l’installazione di pacchetti di debug o test.

Note speciali per l’aggiornamento a Drupal 8.8.0+

Il partner ufficiale PreviousNext ha pubblicato un utile articolo sui passaggi per l’aggiornamento da Drupal 8.7 a 8.8.0 beta, che può aiutare chi riscontra problemi simili.

Il principale motivo di problemi durante l’aggiornamento a Drupal 8.8.0 è la transizione dal vecchio template community-based al nuovo template ufficiale drupal/recommended-project. I seguenti passaggi aiutano a risolvere la migrazione e a utilizzare le istruzioni standard di aggiornamento descritte sopra.

Rimuovere la cartella /vendor

Eliminare la cartella vendor può risolvere conflitti durante l’aggiornamento Composer:

cd your_install_dir
rm -rf vendor

Migrazione da webflo/drupal-core-strict a drupal/core-recommended

Prima di Drupal 8.8.0, molti siti utilizzavano webflo/drupal-core-strict per vincolare le versioni delle dipendenze (es. pacchetti Symfony). Dalla 8.8.0 in poi, è stato introdotto drupal/core-recommended. Il passaggio non è automatico e il vecchio pacchetto non funziona più con 8.8.0.

Il modo più semplice per migrare senza conflitti è eliminare composer.lock e reinstallare. Esegui:

  1. composer update
  2. git add composer.lock; git commit
  3. composer remove webflo/drupal-core-strict --no-update
  4. composer remove drupal/core --no-update
  5. composer require 'composer/installers:^1.7' --no-update
  6. rm composer.lock
  7. rm -rf vendor
  8. composer require drupal/core-recommended:^8.8 --update-with-dependencies
  9. git add composer.json composer.lock; git commit -m "Aggiornamento a Drupal 8.8.0 e passaggio a drupal/core-recommended"

Migrazione da webflo/drupal-core-require-dev a drupal/core-dev

Se il tuo sito utilizza webflo/drupal-core-require-dev per le dipendenze di sviluppo, sostituiscilo con drupal/core-dev.

composer remove --dev webflo/drupal-core-require-dev
composer require --dev drupal/core-dev

Aggiornare le patch

Se utilizzi cweagans/composer-patches, potresti dover rigenerare le patch e aggiornare la sezione extra/patches del tuo composer.json.

Aggiornare dipendenze in conflitto

Se esistono dipendenze non compatibili con la nuova versione di Drupal, specifica le versioni corrette con composer require e poi rimuovile. Esempio:

composer require --update-with-dependencies \
drupal/core:^8.8.0 \
symfony/finder:^3.4 \
symfony/filesystem:^3.4

composer require --dev --update-with-dependencies \
drupal/core-dev:^8.8.0 \
symfony/debug:^3.4

composer remove -n symfony/finder symfony/filesystem
composer remove -n --dev symfony/debug

Aggiornare configurazioni e schema database

drush updb
drush cr
drush config-export

Aggiornare settings.php

Da Drupal 8.8.0, la directory di sincronizzazione è definita in $settings invece che in $config_directories.

$config_directories['sync'] = 'foo/bar';

diventa

$settings['config_sync_directory'] = 'foo/bar';

Problemi noti e soluzioni alternative

Se composer update non aggiorna drupal/core, una dipendenza potrebbe bloccare l’aggiornamento. Usa:

composer prohibits drupal/core:8.5.0

per identificare i pacchetti in conflitto. Aggiornali insieme a drupal/core con:

composer update drupal/core "symfony/*" --with-dependencies

Molti problemi con Composer derivano da vecchi template o configurazioni errate in composer.json. Assicurati di usare un modello aggiornato come indicato nella Guida ufficiale di Drupal.

Dal gennaio 2020 il template drupal-composer/drupal-project non è più consigliato per Drupal 8.8 e versioni successive. Consulta la guida comunitaria per iniziare un sito con i nuovi template Composer.

Ulteriori risorse utili:

In caso di errori o avvisi durante l’aggiornamento, leggili con attenzione e cerca soluzioni nella coda delle issue prima di proseguire. In caso di errori fatali, interrompi il processo e riparti dal backup eseguito in precedenza.