Migração de autor
Historicamente, MediaWiki armazenou referências para usuários (como o autor de uma revisão ou uma imagem) assim como o par [<id>, <name>], com [0, <IP address>] para edições anônimas.
Isto foi um desperdício de espaço de armazenamento, causou problemas de performance em wikis com um grande número de revisões, e tornou muito difícil renomear usuários ou introduzir novos tipos de autores tais como T133452.
MediaWiki 1.31 introduz o conceito de "autores" (alguém que faz uma ação, como uma edição ou um evento de log; atualmente tanto um usuário registrado quanto um anônimo) e o processo de migração em direção a um novo esquema de banco de dados, com campos como revision.rev_user e revision.rev_user_text substituídos por campos como revision.rev_actor.
Devido ao tamanho grande da tabela revision da Wikipedia em Inglês, que também precisa ser completamente migrada antes que as alterações possam ser limpas/colocadas em ordem, a migração está sendo feita graduamente, em várias versões do MediaWiki.
Espera-se que acabe em MediaWiki 1.39.
A migração irá criar uma registro da tabela actor para cada par distinto de *_user / *_user_text , e substituir esses pares com uma referência para a coluna de ID do autor.
As seguintes colunas estão sendo migradas:
| Tabela | Colunas antigas | Colunas novas |
|---|---|---|
| revision | rev_user, rev_user_text | rev_actor |
| archive | ar_user, ar_user_text | ar_actor |
| ipblocks | ipb_by, ipb_by_text | ipb_by_actor |
| image | img_user, img_user_text | img_actor |
| oldimage | oi_user, oi_user_text | oi_actor |
| filearchive | fa_user, fa_user_text | fa_actor |
| recentchanges | rc_user, rc_user_text | rc_actor |
| logging | log_user, log_user_text | log_actor |
Para evitar fazer um custoso ALTER TABLE em tabelas revision extremamente grandes em grandes wikis da Wikipedia, rev_user e rev_user_text são inicialmente copiados para a tabela revision_actor_temp e de lá de volta para revision.
Esta tabela revision_actor_temp será descartada posteriormente.
Se você é dono de uma wiki, você provavelmente não precisaria fazer nada, a migração acontecerá automaticamente quando você executar update.php.
Se você quer controlar quando a migração acontece, veja o script de manutenção $wgActorTableSchemaMigrationStage e migrateActors.php.
Se você é um desenvolvedor de extensão e sua extensão faz acesso direto DB para alguns dos campos afetados, você precisará atualizar suas queries (e idealmente usar os métodos getQueryInfo(), tais como Revision::getQueryInfo(), ao invés de construir manualmente sua query).
Durante o período de migração, você também pode usar a classe ActorMigration para obter o esquema/informação do campo que respeita qualquer configuração $wgActorTableSchemaMigrationStage.
Se você é um desenvolvedor de ferramenta usando Toolforge, pode haver algumas implicações de performance, mesmo que você não use algum dos campos afetados diretamente. Veja wikitech:Notícias/Mudança de armazenamento de atores no Wiki Replicas para informações adicionais.