Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Installer Drush avec composer pour Drupal 7 existant
Depuis le passage à Ubuntu 18.04 LTS, il n'est plus possible d'installer directement drush pour gérer les mises à jour des modules et de Drupal 7 et 8.
Si l'on migre un projet Drupal 7 existant dans un OS Ubuntu 18.04 LTS, on ne peut plus récupérer Drush dans les paquets de Ubuntu.
Drupal.org ne maintient plus Drush depuis la version 8+.
Pour pouvoir gérer les dépendances, il faut maintenant installer composer.
Composer vient avec un grand nombre d'outils, dont Drush, qui est "embarqué" dans composer.
Pour continuer à gérer les dépendances avec drush, on va contourner "à l'arrache" les méthodes préconisées et expliquées dans les autres sections concernant composer et drush.
Le scénario : On a une instance de Drupal 7 dans un Ubuntu 18.04 LTS : /home/ajlsm/projet-du-client/drupals/internet
- Installer composer et drush (voir Installer Drush avec Composer) puis, créer un projet drupal-composer pour D7 (voir et adapter drupal-composer/drupal-project:7.x-dev Installer Drupal avec Composer, par exemple /home/ajlsm/projet-du-client/drupals/internet-composer
- Remplacer le répertoire /home/ajlsm/projet-du-client/drupals/internet-composer/web (où est installé le Drupal créé par composer) par le répertoire /home/ajlsm/projet-du-client/drupals/internet
- Modifier la conf apache selon le nouveau PATH
Ensuite, vous pouvez vider les caches de Drupal avec drush dans le répertoire où se trouve Drupal avec la commande :
drush cc
Enter a number to choose which cache to clear.
[0] : Cancel
[1] : drush
[2] : all
[3] : theme-registry
[4] : menu
[5] : css-js
[6] : block
[7] : module-list
[8] : theme-list
[9] : registry
[10] : libraries
[11] : metatag
[12] : token
[13] : views
Choisir le cache à vider. Ici, on vide le [2], ou all Ensuite, il reste à lancer drush pour faire les mises à jour.
La commande drush up ne fonctionne pas car le projet à été construit avec composer.
Mais, on ne veut pas utiliser composer require, ou composer update, car le projet Drupal n'est pas construit pour fonctionner avec composer.
On va donc faire fonctionner Drush "à l'ancienne" en le forçant à faire les mises à jour avec la commande :
drush up --pm-force
Projet composer Drupal 7 :
php composer.phar create-project drupal-composer/drupal-project:7.x-dev some-dir --no-interaction