Admin tools development/Global rename/Older implementation
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date.
- Goal: Create a tool that is essentially a global version of the pre-existing RenameUser extension, which allows privileged users (stewards on WMF sites) to rename global accounts.
- Design / Architecture:
- Assume local login, create account, auto create account, rename of old or new name are disabled with hooks
- If db lock is present for the username
- If meta's object cache has a rename-key for the user
- Aquire DB locks for old and new names
- check localnames, and local `user` tables for attached wikis for new name
- Check object cache for list of wikis (previous rename failed)
- Lock and continue if so
- Otherwise, insert list of wikis into object cache
- Insert list of wikis into meta's object cache
- As each db renames the `user` table, update `localuser`, update meta's object cache key <= begin/commit on each?
- If error is detected (updated rows = 0), then manually roll back. If an error happens during the rollback, quit, and admin will have to try rename again.
- After all dbs have run, rename globaluser table, add to localnames table
- For all updated wikis, add a job into the wiki's job queue.
- Deployment Plan: