Drupal 8 - 9 - 10 : comment rejouer une fonction d'update

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

Drupal tient un registre des versions des modules installés, ces versions correspondent au dernier numéro du hook_update exécuté du module.

Si par exemple vous venez de lancer le hook 10101 du module field_group et que vous souhaitez le relancer, alors il faudra passer le module en version 10100.

Voila comment faire avec drush et drupal 9 et 10 : (merci Sébastien B. et ND pour vos commentaires)

drush ev "\Drupal::service('update.update_hook_registry')->setInstalledVersion('field_group', 10100);"

Voici une commande compatible avec drupal 8 et 9 mais qui ne fonctionne plus à partir de drupal 10

drush ev "drupal_set_installed_schema_version('field_group', 10100)" 

 

Contenus en rapport

snippet · 5 Jun 2020 Drupal 8 & 9 - Hook Update - Tester si une table existe, la supprimer et la recréer Pour un projet drupal, j'avais besoin de créer deux tables identiques dans une base de données séparée sur un serveur différent, afin de servir de cache pour… snippet · 25 Nov 2020 Drupal 8 & Drupal 9 - Ajouter une propriété (basefield) à un type d'entité via une fonction update Voici comment ajouter un basefield slug à un type d'entité client. La définition de cette propriété se trouvant dans la méthode baseFieldDefinitions de notre… snippet · 7 Avr 2021 Drupal 8 & Drupal 9 - Importer de la config via un update Il est parfois nécessaire d'importer de la config directement dans un HOOK_update(). Évidement il est préférable de respecter le process normal (avec par…

Commentaires (4)

Comments

Sébastien B. (non vérifié)


Voici la nouvelle commande :Merci Kévin pour tes astuces ! Ce sont toujours des valeurs sûres. ;-)

 

Cette commande n'est plus compatible avec Drupal 10.
Voici la nouvelle commande :

 drush "\Drupal::service('update.update_hook_registry')->setInstalledVersion('field_group', 10100);"
ND (non vérifié)

La commande indiquée par Sébastien B. est fausse. Il faut ajouter "ev" après le drush

.\vendor\bin\drush ev "\Drupal::service('update.update_hook_registry')->setInstalledVersion('field_group', 10100);"
kgaut

Merci à tous les deux, j'ai maj :)

Sébastien B. (non vérifié)

Merci pour ta vigilance, j'ai effectivement été un peu vite. ^^'