Jump to content

Migração de autor

From mediawiki.org
This page is a translated version of the page Actor migration and the translation is 100% complete.

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.