Actor migration/cs

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:

TabulkaStaré sloupceNový sloupec
revisionrev_user, rev_user_textrev_actor
archivear_user, ar_user_textar_actor
ipblocksipb_by, ipb_by_textipb_by_actor
imageimg_user, img_user_textimg_actor
oldimageoi_user, oi_user_textoi_actor
filearchivefa_user, fa_user_textfa_actor
recentchangesrc_user, rc_user_textrc_actor
logginglog_user, log_user_textlog_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.

Category:MediaWiki database tables/cs
Category:MediaWiki database tables/cs