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?
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
- Comments — Comments, Comments_block, Comments_Vote
- CommentsPage#getComments does a LEFT JOIN againt SocialProfile's user_stats.stats_user_id when SP is installed
FanBoxes — fantag, user_fantag
- https://gerrit.wikimedia.org/r/561868/ (Open as of 5 January 2020)
LinkFilter — link MediaWikiChat — chat, chat_users (used on Brickimedia)
- Per discussion with @lcawte on 2 January 2020, we'll likely be dropping this extension and not implementing actor support for it
MiniInvite — user_email_track NewSignupPage — user_register_track PictureGame — picturegame_images, picturegame_votes
- https://gerrit.wikimedia.org/r/561955 (Open as of 5 January 2020)
PollNY — poll_question, poll_user_vote
- 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 5 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_stats 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 Video (non-WMF) — oldvideo, video
- https://gerrit.wikimedia.org/r/561901 (Open as of 5 January 2020)
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)
- https://gerrit.wikimedia.org/r/562053 (Open as of 5 January 2020)
VoteNY — Vote (stores username and IP address but not user ID?!)
- 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)
- Ideally things like BlogPage or SocialProfile wouldn't query the DB table directly...