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.

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';

1

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.