Comment mettre à jour les modules désactivés à l'aide de Drush?

10

Existe-t-il un moyen de mettre à jour les modules désactivés avec Drush?

Actuellement, lorsque j'essaie de mettre à jour un module désactivé avec Drush, je reçois ce message:

Le projet n'a pas d'extensions activées et ne peut pas être mis à jour

L'activation du module n'est pas une option car il s'agit d'un site en ligne, en fait de nombreux sites. Ils fonctionnent tous à partir de la même base de code Drupal. Certains modules sont utilisés par certains sites mais pas par d'autres (éventuellement pas sur le site principal).

Si Drush ne peut pas gérer cela, quelle est une alternative simple pour mettre à jour les modules?

nmc
la source
A propos de "Ils fonctionnent tous à partir de la même base de code Drupal": veuillez confirmer si c'est via une construction multi-sites (sinon comment faire autrement)?
Pierre.Vriens

Réponses:

6

Vous pouvez l'utiliser drushpour cela. Tout d' abord, vous devez obtenir la liste de tous les modules que vous avez, pour ce que vous utilisez drush pm-listcomme celui - ci , drush pm-list --no-core --pipe --type="module"vous obtiendrez une liste de tous les modules (activé, désactivé et désinstallés).

Après, lorsque vous obtenez toute la liste de vos modules, vous pouvez utiliser drush dl [modules - list]cette commande pour drushtélécharger et remplacer le module existant. Comme il le fait avec drush up.

Le dernier problème est d'exécuter le update.php, malheureusement celui-ci doit être fait pour chaque site Web ou vous pouvez facilement coder un petit script qui le fait.

yvan
la source
Sensationnel. Je n'ai même jamais pensé à faire ça, mais on dirait que ça marcherait. Des mises en garde que je devrais connaître?
nmc
Btw, Drush a une commande updatedb (updb)qui exécute essentiellement update.php. Vous pouvez appeler drush @sites updbpour mettre à jour tous les sous-sites en une seule fois.
nmc
Je sais, quand j'ai dit que tu devais le faire update.phpsoit par url, soit drushévidemment :)
yvan
1
Cette réponse de 4 ans a maintenant une meilleure réponse, ici dans ce fil: drupal.stackexchange.com/a/177851/7009
Screenack
13

J'utilise: drush pm-updatecode --check-disabled suivi de: drush @sites updatedb

L' --check-disabledoption a été ajoutée 2014-11-04

Wyrdwright
la source
5
C'est maintenant la bonne réponse - aimez-la en conséquence.
Screenack
10
drush vset update_check_disabled 1 -y
pfrenssen
la source
6

Donc, je viens de réaliser que la mise à jour des modules désactivés est possible via Drush à condition que vous ayez coché la case Check for updates of disabled modules and themesdans les paramètres de votre module de gestionnaire de gestionnaire de mise à jouradmin/reports/updates/settings).

Il s'agit ensuite d'émettre la commande drush up modulenamede mise à jour du module.

nmc
la source