Сброс / возврат обновления пользовательского модуля 'N value'

12

В установочном файле моего пользовательского модуля у меня есть hook_update_Nфункция. Скажем так mymodule_update_7100. Тем не менее, я заметил, что сделал это неправильно, и я хочу изменить строку кода в этой функции. Поскольку я уже запустил updb/ update.phpизменения не будут приняты, и мне придется переименовать его либо в другое, mymodule_update_7101либо создать новую функцию после этого с таким именем. Я действительно предпочел бы не делать этого, поэтому мне было интересно, есть ли переменная, которая сообщает Drupal, какой именно «номер версии» находится у модуля в данный момент, и могу ли я сбросить его, чтобы обманным путем позволить мне запустить скрипт обновления еще раз.

Фактический эффект, который функция оказала на базу данных, не важен, потому что она просто генерирует термин таксономии, который я могу легко удалить через интерфейс.

Мэтт Флетчер
источник

Ответы:

18

schema_versionСтолбец в systemтаблице содержит версию последнего успешного обновления. Управляйте этим значением, и вы можете повторно протестировать свое обновление.

nameКолонна является именем машины модуля, так же , как файл информации с именем.

Этот запрос поможет вам.

UPDATE system SET schema_version = XXXX WHERE name = 'name_of_module';
Letharion
источник
1

Install.inc ядра Drupal 7 имеет функцию drupal_set_installed_schema_version($module, $version)

Патрик У
источник