Resetowanie / cofanie aktualizacji niestandardowego modułu „Wartość N”

12

W pliku instalacyjnym modułu niestandardowego mam hook_update_Nfunkcję. Powiedzmy, że to mymodule_update_7100. Zauważyłem jednak, że zrobiłem to źle i chcę zmienić wiersz kodu w tej funkcji. Ponieważ już uruchomiłem updb/ update.phpzmiany nie zostaną pobrane i będę musiał zmienić nazwę na albo mymodule_update_7101albo utworzyć nową funkcję po tej nazwie. Naprawdę wolałbym tego nie robić, więc zastanawiałem się, czy istnieje zmienna, która mówi Drupalowi dokładnie, w jakim „numerze wersji” aktualnie znajduje się moduł i czy mogę go zresetować, aby nakłonić go do uruchomienia skryptu aktualizacji jeszcze raz.

Rzeczywisty wpływ, jaki funkcja wywarła na bazę danych, nie jest ważny, ponieważ po prostu generuje pojęcie taksonomii, które później mogę łatwo usunąć za pomocą interfejsu.

Matt Fletcher
źródło

Odpowiedzi:

18

schema_versionKolumna w systemtabeli zawiera wersję ostatniej pomyślnej aktualizacji. Zmodyfikuj tę wartość, aby ponownie przetestować aktualizację.

nameKolumna to nazwa komputera z modułem, tak samo jak plik informacji o nazwie.

To zapytanie załatwi sprawę.

UPDATE system SET schema_version = XXXX WHERE name = 'name_of_module';
Letharion
źródło
1

Drugi instalator Drupal 7 ma tę funkcję drupal_set_installed_schema_version($module, $version)

Patrick W.
źródło