Migrace zúčastněných
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.