Migración

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Actor migration and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Esperanto • ‎Türkçe • ‎azərbaycanca • ‎español • ‎français • ‎lietuvių • ‎polski • ‎português do Brasil • ‎svenska • ‎čeština • ‎русский • ‎हिन्दी • ‎日本語

Históricamente, MediaWiki ha almacenado referencias a usuarios (como el autor de una revisión o una imagen) como un [<id>, <name>] par, con [0, <dirección de IP>] para ediciones anónimas. Esto era un desperdicio en espacio de almacenamiento, causaba problemas de rendimiento en las wikis con muchas revisiones, y dificultaba renombrar a los usuarios o introducir nuevos tipos de autores (como los T133452). En MediaWiki 1.31 se introduce el concepto de "actores" (alguien que realiza un acción, como editar o registrar un evento; actualmente esta usuario puede estar registrado o ser anónimo). Adicionalmente, un proceso de migración hacia un nuevo modelo para la base de datos,en donde los campos como revision.rev_user y revision.rev_user_text son remplazados con revision.rev_actor. Debido al enorme tamaño de la tabla de revision de la Wikipedia en inglés, que debe migrarse por completo antes de que los cambios puedan limpiarse, la migración está siendo realizada gradualmente, en varias liberaciones de MediaWiki. Se espera que termine en MediaWiki 1.34.

La migración creará una actor tabla de registro para cada distinto *_user/*_user_text par, y reemplazará esos pares con una referencia a la fila de actor ID. Las columnas siguientes están siendo migradas:

Tabla Viejas Columnas Columna nueva
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 hacer un costoso ALTER TABLE en la extremadamente grandes revision tablas de las grandes wikis de Wikipedia, rev_user y rev_user_text son inicialmente copiadas en la tabla revision_actor_temp y de allí atrás a revision. La revision_actor_temp tabla se dejará caer después.

Si eres dueño de una wiki, probablemente no necesites hacer nada, la migración se realizará automáticamente cuando ejecutes update.php. Si quieres controlar cuándo la migración pase, ve $wgActorTableSchemaMigrationStage y el migrateActors.php guión de mantenimiento.

Si eres un desarrollador de extensiones, y tu extensión tiene acceso directo DB a algunos de los campos afectados, necesitarás actualizar tus consultas (e idealmente utilizar los métodos de getQueryInfo(), como Revision::getQueryInfo(), en vez de construir tu consulta manualmente). Durante el periodo de migración, también puedes utilizar la clase ActorMigration para conseguir esquema/información de campo con respecto a cualquier encuadre $wgActorTableSchemaMigrationStage.

Si eres un desarrollador de herramientas utilizando Toolforge , podría haber implicaciones de rendimiento, puede haber implicaciones de rendimiento, incluso si no utilizas ninguno de los campos afectados directamente. Consulta wikitech:cambios/de almacenamiento de noticias de actor en las réplicas de Wiki para obtener información adicional.