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 впоследствии будет удалена.

Если вы владелец какой-либо вики, вероятно, вам ничего не нужно делать самостоятельно. Переход на новый формат осуществится автоматически, когда вы выполните сценарий. Если вы хотите управлять тем, когда произойдёт переход, обратитесь к документации к и.

Если вы разработчик расширения, использующего прямой доступ к затронутым полям базы данных, вам нужно будет обновить свои запросы (или ещё лучше, перейти на использование методов, например  , а не строить свои запросы вручную). На время периода перехода вы также можете использовать класс  для получения информации о схеме и полях. Этот класс работает для любых настроек.

Если вы разрабатываете стороннее приложение, использующее, его производительность может измениться, даже если вы не обращаетесь напрямую к затронутым полям. Для получения более подробной информации обратитесь к wikitech:News/Actor storage changes on the Wiki Replicas (на английском языке).