Migrace zúčastněných

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

Historicky ukládala MediaWiki odkazy na uživatele (například autora revize nebo obrázku) jako dvojici [<id>, <jméno>], s [0, <IP adresa>] pro anonymní úpravy. To bylo plýtvání úložným prostorem, způsobovalo problémy s výkonem na wiki s velkým počtem revizí a bylo velmi obtížné přejmenovat uživatele nebo představit nové typy autorů jako T133452. MediaWiki 1.31 zavádí koncept zúčastněných (někoho, kdo provádí akci, jako je editace nebo událost protokolu; aktuálně buď registrovaný nebo anonymní uživatel) a migrační proces směřující k novému databázovému schématu, kde jsou sloupce revision.rev_user a revision.rev_user_text nahrazené sloupcem revision.rev_actor. Vzhledem k obrovské velikosti tabulky revision na anglické Wikipedii, která byla úplně migrována, než bylo možné změny vyčistit, probíhá migrace postupně během několika vydání MediaWiki. Skončilo to v MediaWiki 1.39.

Migrace vytvořila záznam tabulky actor pro každý rozdílný pár *_user / *_user_text a nahradila tyto páry odkazem na ID řádku zúčastněného. Byly přemístěny následující sloupce:

Tabulka Staré sloupce Nový sloupec
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

Abychom se vyhnuli náročným ALTER TABLE na extrémně obrovských revision tabulkách velkých Wikipedií, rev_user a rev_user_text byly nejprve zkopírovány do tabulky revision_actor_temp a odtud zpět do revision. Poté byla tabulka revision_actor_temp zrušena.

Jste-li vlastníkem wiki, pravděpodobně nemusíte nic dělat. K migraci dojde automaticky, když spustíte update.php. Pokud chcete mít pod kontrolou, kdy dojde k migraci, podívejte se na údržbový skript $wgActorTableSchemaMigrationStage a migrateActors.php .

Pokud jste vývojář rozšíření a vaše rozšíření provádí přímý databázový přístup k některým dotčeným sloupcům, budete muset své dotazy aktualizovat (a v ideálním případě použít metody getQueryInfo(), jako je Revision::getQueryInfo(), místo manuálního vytváření dotazu). Během období migrace můžete také použít třídu ActorMigration k získání informací o schématu/sloupci, které respektují všechna nastavení $wgActorTableSchemaMigrationStage.

Pokud jste vývojář nástrojů používajících Toolforge , může být ovlivněn výkon, i když přímo nepoužíváte žádná z migrujících polí. Další informace viz wikitech:News/Actor storage changes on the Wiki Replicas.