Réinitialisation / annulation de la mise à jour d'un module personnalisé 'valeur N'

12

Dans le fichier d'installation de mon module personnalisé, j'ai une hook_update_Nfonction. Disons que c'est mymodule_update_7100. Cependant, j'ai remarqué que je l'ai mal fait et je veux changer une ligne de code dans cette fonction. Étant donné que j'ai déjà exécuté updb/ update.phples modifications ne seront pas récupérées et je devrais le renommer mymodule_update_7101ou créer une nouvelle fonction après avec ce nom. Je préfère vraiment ne pas avoir à le faire, donc je me demandais s'il y avait une variable qui dit à Drupal exactement à quel "numéro de version" un module se trouve actuellement et si je peux le réinitialiser pour qu'il me permette d'exécuter le script de mise à jour encore.

L'effet réel que la fonction a eu sur la base de données n'est pas important car il génère simplement un terme de taxonomie que je peux facilement supprimer par la suite par la suite.

Matt Fletcher
la source

Réponses:

18

La schema_versioncolonne du systemtableau contient la version de la dernière mise à jour réussie. Manipulez cette valeur et vous pouvez tester à nouveau votre mise à jour.

La namecolonne est le nom de la machine du module, comme le nom du fichier info.

Cette requête fera l'affaire pour vous.

UPDATE system SET schema_version = XXXX WHERE name = 'name_of_module';
Létharion
la source
1

Le fichier install.inc de Drupal 7 core a la fonction drupal_set_installed_schema_version($module, $version)

Patrick W
la source