Need to add a new `_actor` column to all supported extensions' relevant tables and ~~potentially~~ use it~~, depending on the value of `$wgActorTableSchemaMigrationStage`. #mediawiki-extensions-renameuser has a nice method called `getActorMigrationStage` in `/extensions/Renameuser/includes/RenameuserSQL.php` that we'll likely want to copy over to the relevant classes.~~
Also need a new, relevant index.
When would it be safe to ditch the "older" `_user`/`_user_text` columns; MW 1.34 or 1.35?
[[https://www.mediawiki.org/wiki/Actor_migration|mw:Actor migration]]
Affected extensions and tables:
# #AJAXPoll — `ajaxpoll_vote` (stores username and IP address but not user ID?!)
# ~~#Challenge — not really maintained right now, so not a huge priority; `challenge`, `challenge_rate`, `challenge_user_record`~~
## https://gerrit.wikimedia.org/r/561349
# #Comments — `Comments`, `Comments_block`, `Comments_Vote`
# #FanBoxes — `fantag`, `user_fantag`
# ~~#LinkFilter — `link`~~
## https://gerrit.wikimedia.org/r/521982
## https://gerrit.wikimedia.org/r/561333/ (Open as of 2 January 2020)
# ~~#MediaWikiChat — `chat`, `chat_users` (used on #Brickipedia)~~
## Per discussion with @Lcawte on 2 January 2020, we'll likely be dropping this extension and not implementing actor support for it
# #PictureGame — `picturegame_images`, `picturegame_votes`
# ~~#PollNY — `poll_question`, `poll_user_vote`~~
## https://gerrit.wikimedia.org/r/561594/ (Open as of 2 January 2020)
# #QuizGame — `quizgame_answers`, `quizgame_questions`, `quizgame_user_view`
# #SocialProfile — `user_board`, `user_profile` (only stores user ID as `up_user_id` currently, has no knowledge of the user's name), `user_fields_privacy` (ditto), `user_points_archive`, `user_points_monthly`, `user_points_weekly` (need to remember to keep the column name the same between these 3 tables!), `user_stats`, `user_system_messages`, `gift`, `user_gift`, `user_system_gift`, `user_relationship`, `user_relationship_request`
# ~~#SiteMetrics — doesn't introduce any custom tables on its own, but references many extension and core-created tables, like `revision`~~
## https://gerrit.wikimedia.org/r/561329/ (Open as of 2 January 2020)
# SportsTeams — `sport_favorite`
## This is trickier than what it looks at first, because at least `SportsTeams#getUsersByPoints` does a `LEFT JOIN` against SocialProfile's `user_status` table and specifically its `stats_user_id` column, and needless to say, we can't do a direct comparison between an actor ID and a user ID as they aren't the same thing! So this can't be done until `user_stats` has an actor column...
# ~~#UserStatus — `user_status`, `user_status_vote`~~
## https://gerrit.wikimedia.org/r/561411
## https://gerrit.wikimedia.org/r/561413 (SocialProfile part, open as of 2 January 2020)
# #video_non-wmf — `oldvideo`, `video`
# #WikiForum — not really maintained right now by us, but quite a few people seem to be using it; also, it's a mess; `wikiforum_category`, `wikiforum_forums`, `wikiforum_threads`, `wikiforum_replies` (all tables store UIDs + IPs, but not user names)
# ~~#VoteNY — `Vote` (stores username and IP address but not user ID?!)~~
## https://gerrit.wikimedia.org/r/525330/
## https://gerrit.wikimedia.org/r/561326/
## Also note the need for changes in extensions which directly query the `Vote` table, like #BlogPage and also #SocialProfile (https://gerrit.wikimedia.org/r/561341/ and https://gerrit.wikimedia.org/r/561342/, respectively)