[DRUPAL 7] Mise à jour d’un module custom

mardi 18 septembre 2018

Drupal nous permet de gérer aussi un versionning du schema de la base de donnée pour chaque table de nos module.

Du coup, dans le fichier .install de notre module nous pouvons créer un hook_upade_xxx ou xxx correspond au numéro de version du schema.
Ce Hook contiendra ce que nous souhaitons changer dans la structure de nos tables (ajout de champs/table/manipulation de donnée/etc…)
Il nous reste à faire la commande suivante avec drush pour mettre à jour le schema de notre base de donnée.

drush updatedb

Cette commande va rechercher tous les hooks update dont le numéro de version est plus élevé que celui définit dans la table system et les exécuter.

Par exemple: si nous voulons changer le schema d’une table de notre module test, il suffit de créer le hook test_update_7101() dans le fichier test.install.

Ensuite, il faut être sur que la version 7101 soit plus élevée que la version spécifié dans la query suivante:

select schema_version from system where name ='test';

Et si c’est le cas, le hook sera appelé et exécuté et drush nous demandera confirmation avant exécution:

test  7101  7101 -
Do you wish to run all pending updates? (y/n): 

Et le tour est joué.

Tags: db , Drupal 7 , drush , update