Actor migration/ru

Изначально движок MediaWiki хранил ссылки на пользователей (сделавших правку или загрузивших файл) парой значений: ID пользователя и название. Для незарегистрировавшихся редакторов ID был равен, а название — IP-адресу. Это приводило к бесполезной трате файлового пространства на серверах, вызывало проблемы с производительностью на вики с большим количеством версий, и значительно осложняло переименование учётных записей и введение новых типов авторов (таких как в T133452). MediaWiki 1.31 вводит понятие исполнителей (англ. actor). Исполнитель — это тот, кто совершил действие, например правку или что-то, что записано в журнал. На данный момент исполнитель — или зарегистрировавшийся участник (определяемый своей учётной записью), или незарегистрировавшийся (определяемый своим IP-адресом). В версии 1.31 добавлен процесс перевода базы данных вики на новую схему, в которой пары полей наподобие  и   заменены полями наподобие. В связи с огромным размером таблицы revision на английской Википедии, которую необходимо полностью перевести на новый формат, прежде чем заняться исправлением связанных с переходом проблем, введение формата исполнителей происходит постепенно, в течение нескольких релизов MediaWiki. Ожидается, что переход на новый формат завершится в версии MediaWiki 1.34.

В ходе перехода в таблице будет создана запись для каждой пары значений   / , а сами пары значений будут заменены на идентификатор соответствующей строки в таблице исполнителей. Переход на новый формат затронет следующие столбцы:

Чтобы не выполнять ресурсоёмкий запрос ALTER TABLE на огромных таблицах revision больших разделов Википедии, сначала поля  и   копируются в таблицу  и потом обратно в таблицу. Временная таблица revision_actor_temp впоследствии будет удалена.

Если вы владелец какой-либо вики, вероятно, вам ничего не нужно делать самостоятельно. Переход на новый формат осуществится автоматически, когда вы выполните сценарий. If you want to control when the migration happens, see and the  maintenance script.

If you are an extension developer, and your extension does direct DB access to some of the affected fields, you'll need to update your queries (and ideally use the  methods, such as , instead of manually constructing your query). During the migration period, you can also use the  class to get schema/field information that respects any   settings.

If you are a tool developer using, there might be performance implications, even if you don't use any of the affected fields directly. See wikitech:News/Actor storage changes on the Wiki Replicas for additional information.