Redefinindo / revertendo a atualização de um módulo personalizado 'N value'

12

No arquivo de instalação do meu módulo personalizado, tenho uma hook_update_Nfunção. Vamos dizer que é mymodule_update_7100. No entanto, notei que fiz algo errado e quero alterar uma linha de código nessa função. Vendo que eu já executei updb/ update.phpas alterações não serão detectadas e eu teria que renomeá-lo para mymodule_update_7101ou criar uma nova função depois com esse nome. Eu realmente prefiro não ter que fazer isso, por isso fiquei pensando se há uma variável que diga ao Drupal exatamente em qual "número da versão" um módulo está atualmente e se posso redefini-lo para enganá-lo para permitir que eu execute o script de atualização novamente.

O efeito real que a função teve no banco de dados não é importante porque está apenas gerando um termo de taxonomia que eu posso excluir facilmente no front-end posteriormente.

Matt Fletcher
fonte

Respostas:

18

A schema_versioncoluna na systemtabela contém a versão da última atualização bem-sucedida. Manipule esse valor e você poderá testar novamente sua atualização.

A namecoluna é o nome da máquina do módulo, o mesmo que o arquivo info.

Esta consulta fará o truque para você.

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

O install.inc do núcleo do Drupal 7 tem a função drupal_set_installed_schema_version($module, $version)

Patrick W
fonte