Как сравнить два сайта MediaWiki - PullRequest
0 голосов
/ 24 декабря 2018

Мы переместили частный сайт MediaWiki на новый сервер.Несколько месяцев спустя мы обнаружили, что один или два пользователя продолжали обновлять старый сайт MediaWiki.Итак, у нас есть некоторые правки на старом сервере, которые нужно скопировать на новый сервер.

Кто-нибудь знает о подпрограмме или процессе (удобно?) Для сравнения и идентификации правок на старом сайте?

Согласно комментариям, прикрепленным к этому сообщению, страница «Недавние изменения» может работать, если эта страница приняла дату начала.К сожалению, он ограничен максимум 30 днями.В этом случае мне нужно просмотреть изменения за 12 месяцев.

1 Ответ

0 голосов
/ 28 декабря 2018

Определите выполненные правки

Определите и проверьте правки, сделанные вашими пользователями, начиная с форка

Используя базу данных (при условии MySQL) и без префиксов таблиц

Дайте мне всеизменения, внесенные с 01 декабря 2018 года (включая эту дату):

SELECT rev_id, rev_page, rev_text_id, rev_comment, rev_user, rev_user_text, rev_timestamp
FROM   revision
WHERE  rev_timestamp > '20181201';

Обратите внимание, что фактический текст страницы хранится в таблице text, а имя страницы в таблице page.

Дайте мне все правки, сделанные с 01 декабря 2018 года (включая эту дату) с именем страницы и текстом ревизии:

SELECT rev_id, rev_page, page_namespace, page_title, rev_text_id, rev_comment, rev_user, rev_user_text, rev_timestamp, old_text
FROM revision r
LEFT JOIN page p
   ON p.page_id = r.rev_page
LEFT JOIN text t
   ON t.old_id = r.rev_text_id
WHERE rev_timestamp > '20181201';

Обратите внимание, что с помощью таких инструментов, как MySQL Workbench, вы можете копировать результаты как операторы вставки MySQL.В зависимости от того, что пользователи делали со старой вики, вам может понадобиться перенести записи из 3 таблиц;однако, если были загружены файлы, удаления или изменения прав пользователя, это становится сложным.Вы можете отслеживать эти изменения с помощью таблицы регистрации .

Использование веб-интерфейса

Разумеется, можно показать больше изменений, чем всего 500 за последние 30 дней.Параметр, который позволяет вам настроить это $wgRCLinkLimits и $wgRCLinkDays.Вы также можете просто открыть страницу недавних изменений, нажать 30 дней и изменить параметры URL-адреса, чтобы URL стал path/to/index.php?title=Special:RecentChanges&days=90&limit=1500 (ограничение 1500 за последние 90 дней).

Продолжительность сохранения истории последних измененийзависит от $wgRCMaxAge.В настоящее время это 90 дней, но вам может повезти, если задание на очистку еще не удаляет более старые записи.

Журналы можно просматривать без этого ограничения.Посетите Special:Log в своей вики.

Используя API

list=allrevisions перечисляет все ревизии страницы (то есть изменения).

Позволяет указатьметки времени начала (arvstart) и продолжение.

Пример: https://commons.wikimedia.org/w/api.php?action=query&list=allrevisions&arvlimit=1000

Чтобы увидеть удаления, изменения прав пользователя, загрузки, ... используйте list=logevents.

Исправить проблему

Либо с использованием сценариев базы данных (не забудьте выполнить резервное копирование ранее), либо с Special:Export в исходной вики и Special:Import в вики, нуждающихся в обновлении.

Избегайте проблемы

Для будущей миграции на новый сервер $wgReadOnly может быть вашим другом, во-первых, избежав этой проблемы, создав старую вики.только для чтения.

Существует также Расширение: Синхронизация , хотя я не уверен, на что оно способно.

...