Zurücksetzen / Zurücksetzen des Aktualisierungs-N-Werts eines benutzerdefinierten Moduls

12

In der Installationsdatei meines benutzerdefinierten Moduls habe ich eine hook_update_NFunktion. Sagen wir es ist mymodule_update_7100. Ich habe jedoch festgestellt, dass ich es falsch gemacht habe und eine Codezeile innerhalb dieser Funktion ändern möchte. Da ich bereits ausgeführt haben updb/ update.phpwerden die Änderungen nicht abgeholt werden , und ich würde es umbenennen müssen entweder mymodule_update_7101oder eine neue Funktion , nachdem er mit diesem Namen zu erstellen. Ich würde das wirklich lieber nicht tun müssen, also habe ich mich gefragt, ob es eine Variable gibt, die Drupal genau mitteilt, unter welcher "Versionsnummer" sich ein Modul gerade befindet, und ob ich es zurücksetzen kann, um es dazu zu bringen, das Update-Skript auszuführen nochmal.

Die tatsächliche Auswirkung der Funktion auf die Datenbank ist nicht wichtig, da lediglich ein Taxonomiebegriff generiert wird, den ich anschließend problemlos über das Front-End löschen kann.

Matt Fletcher
quelle

Antworten:

18

Die schema_versionSpalte in der systemTabelle enthält die Version des letzten erfolgreichen Updates. Wenn Sie diesen Wert ändern, können Sie Ihr Update erneut testen.

Die nameSpalte ist der Computername des Moduls, genau wie die Infodatei benannt ist.

Diese Abfrage erledigt den Trick für Sie.

UPDATE system SET schema_version = XXXX WHERE name = 'name_of_module';
Letharion
quelle
1

Die install.inc von Drupal 7 Core hat die Funktion drupal_set_installed_schema_version($module, $version)

Patrick W.
quelle