Mediawiki - Atualizando uma versão pré-histórica

From absortowiki

MediaWiki-sysadmins-icon

Era uma vez uma versão muito muito antiga

Esses dias recebi um contato de um cliente pedindo para atualizar as versões de suas wikis. Eram dois sites diferentes rodando Mediawiki nas versões 1.24.2 e 1.19.2, ambas versões que atingiram o fim da vida em 2015 (!).

De lá para cá muitas mudanças aconteceram no software (muitas mesmo!) e, em função de experiências recentes migrando wikis de versões 1.31 e 1.32 para a nova versão LTS, 1.35, eu fiquei bastante receoso que uma atualização de wikis tão antigas seria uma enorme dor-de-cabeça.

Para avaliar o tamanho do trabalho, fui atrás de outras experiências de pessoas que tinham atualizado wikis de versões tão distantes, afinal, tinha que ter mais gente, não é? A internet está cheia de software ancião, deprecado, repleta de CMS rodando as versões mais obscuras de software no backend... alguém tem que ter documentado uma atualização de Mediawiki em moldes parecidos com esse pedido que eu tinha acabado de receber. Acabei encontrando o ótimo artigo sobre atualização no lugar mais óbvio, na mediawiki.org. A seção sobre como fazer um upgrade de uma versão muito antiga era exatamente o que eu estava procurando e, com os comentários nessa postagem, eu ganhei bastante confiança de que daria certo, mesmo que desse um pouco de trabalho.

Passo a Passo da Atualização

Tenho o costume de ir fazendo um registro das alterações na medida em que vou fazendo elas, isso ajuda bastante a encontrar um problema caso ocorra e, principalmente nesse caso por se tratarem de duas wikis similares, ajuda a obter o mesmo resultado outra vez caso tudo saia como o esperado, repetindo uma sucessão de passos.

  • Realizei backups completos, tanto do banco de dados quanto das pastas da instalação da Mediawiki rodando atualmente, e os movi para fora do servidor
  • Portei o LocalSettings.php em uso para a versão 1.35 comparando com versões compatíveis que eu tinha e retirando variáveis globais de configuração deprecadas/removidas. (É muito mais fácil quando a instalação usa um LocalSettings.php limpo que importa uma segunda versão customizada, nesse caso bastaria substituir o arquivo limpo da versão antiga por um compatível com a nova versão e incluir a versão customizada, alterando onde necessário.)
  • Baixei e extrai a nova versão da Mediawiki (1.35)
  • Copiei o diretório /images do diretório antigo para o novo
  • Renomeei os diretórios, usando o nome apontado no web-server para o diretório com a nova versão da Mediawiki e mantendo o diretório antigo, mas com outro nome
  • Rodei o comando de atualização do banco de dados php maintenance/update.php

Resultado

No fim das contas deu tudo muito certo. Para ser sincero, deu mais certo do que algumas das experiências que eu tive de atualizar da versão 1.34 para a 1.35, onde enfrentei múltiplos problemas com as tables user e actor, todos resolvíveis, mas que demandaram um bocado de tempo.

Para esse cliente eu passei uma estimativa para o trabalho com tempos mínimo e máximo, levando em conta que a atualização poderia reservar muitas surpresas. Para passar uma ideia mais concreta, o tempo máximo estimado era o dobro do tempo mínimo. Para minha surpresa, a atualização completa dos dois sites acabou levando exatamente o tempo mínimo que eu tinha estimado.

É muito bom quando o software ajuda :) Sou eternamente grato por quem mantém o código do script de manutenção update.php e todas as pessoas desenvolvedoras dedicadas em fazer com que a Mediawiki seja o mais compatível possível com versões antigas.