Использование MediaWikiDumper

Материал из Викиреальностя
Перейти к: навигация, поиск

Содержание

[править] Версия

Этот архив содержит альфа-версию MediaWikiDumper 1.1.5.

[править] Основная информация

MediaWiki Dumper — набор инструментов, написанный Эдвардом Черненко <[email protected]>.

Он позволят сохранить копию википроекта при помощи API для ботов.

В результате работы скриптов получаются файлы дампа MySQL в формате, совместимом с LOAD DATA INFILE (это позволяет импортировать их очень быстро, быстрее чем обычные XML-дампы).

[править] Системные требования

Необходимы следующие модели для Perl: LWP, MediaWiki::API (используйте последнюю версию! ранние версии имеют проблемы с UTF-8), IO::Socket::SSL, MIME::WordDecoder, Digest::MD5, Mail::POP3Client, Term::ANSIColor, ProgressBar::Stack, Cache::Memcached::Fast, MIME::Base16, Time::CTime. Используйте следующую команду для их установки:

  $ cpan LWP MediaWiki::API IO::Socket::SSL MIME::WordDecoder Digest::MD5 Mail::POP3Client Term::ANSIColor ProgressBar::Stack Cache::Memcached::Fast MIME::Base16 Time::CTime

Примечания: на системах Windows известно о проблемах с установкой MIME::Base32, поэтому я включил его в состав дистрибутива.

[править] Файлы настроек

Перед тем, как использовать скрипты, необходимо обновить некоторые файлы (необходим пароль для аккаунта бота в старой вики, данные базы данных MySQL новой вики, имя и пароль Gmail-аккаунта, связанного с аккаунтом бота на Викии).

Примечания:

  • для скрипта givepassword.pl ваш аккаунт бота на Викии должен иметь подтвержденный адрес электронной почты (в Special:Preferences) для получения сообщений от других пользователей Викии для восстановления пароля.
  • скрипт text.pl требует административные права для сохранения удаленных правок.

Необходимые конфигурационные файлы

  • Для text.pl, images.pl, logs.pl, interwiki.pl:
BOTCONFIG.pl
  • Для givepassword.pl:
CONFIGWIKIACENTRAL.pl, GMAIL_CONF.pm, mwDB.pm
  • Для users.pl:
BOTCONFIG.pl, mwDB.pm

[править] Использование

Внимание: эта инструкция предназначена для UNIX-систем. См. секцию «Использование на Windows», если вам это надо.

1. Обновите все конфигурационные файлы, перечисленные выше.

2. Сохраните все логи:

  $ perl logs.pl

3. Сохраните всю информацию об изображениях:

  $ perl images.pl

4. Сохраните таблицу интервики:

  $ perl interwiki.pl

5. Загрузите все изображения:

  $ perl download-images.pl

Примечание: этот скрипт не разделяется на потоки, и если на вашей вики очень много изображений, вы можете запустить его в фоновом режиме вместе с остальными скриптами. Для этого используйте команду:

  $ perl download-images.pl >>/tmp/download-images.log 2>&1 &

6. Настройте изображения (предполагается, что ваш веб-сервер работает под пользователем и группой 'httpd'):

  $ cp -r --update `find dumps/_downloaded/ -mindepth 1 -maxdepth 1 -type d` ПУТЬ_К_ПАПКЕ_С_ИЗОБРАЖЕНИЯМИ
  $ chown httpd.httpd -R ПУТЬ_К_ПАПКЕ_С_ИЗОБРАЖЕНИЯМИ

7. Сообщите участникам, что не надо загружать новые изображения в старую вики (и рекомендуйте не редактировать страницы в старой вики). Сохраните содержимое статей, все правки и удаленные версии:

  $ perl text.pl

8. Сообщите участникам, что не надо редактировать старую вики. Сделайте резервную копию вашего дампа, затем загрузите изменения, сделанные с момента шага 7 (дополнительная защита):

  $ cp dumps/{text,restrictions,revision,text,archive}.txt /tmp/
  $ perl text.pl

Если скрипт напишет, что не может выполнить задачу (или он выполняется слишком долго по неизвестным причинам), тогда И ТОЛЬКО ТОГДА отмените его (Ctrl+C) и откатитесь к дампу, созданному на шаге 7:

  $ mv /tmp/{text,restrictions,revision,text,archive}.txt .

9. Загрузите информацию в базу данных:

  $ alias MYSQL='mysql --batch --show-warnings -u <НАЗВАНИЕ_ВАШЕЙ_БАЗЫ_ДАННЫХ> -D <ИМЯ_ПОЛЬЗОВАТЕЛЯ_БАЗЫ_ДАННЫХ> -p<ПАРОЛЬ_БАЗЫ_ДАННЫХ>' ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/interwiki.txt' IGNORE INTO TABLE interwiki" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/logs.txt' IGNORE INTO TABLE logging" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/images.txt' IGNORE INTO TABLE image" ;
  $ MYSQL -e"ALTER TABLE oldimage ADD PRIMARY KEY (oi_archive_name)" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/images_old.txt' IGNORE INTO TABLE oldimage" ;
  $ MYSQL -e"ALTER TABLE oldimage DROP PRIMARY KEY" ;
  $ MYSQL -e"ALTER table archive ADD PRIMARY KEY(ar_rev_id)" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/archive.txt' IGNORE INTO TABLE archive" ;
  $ MYSQL -e"ALTER TABLE archive DROP PRIMARY KEY" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/page.txt' REPLACE INTO TABLE page" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/restrictions.txt' REPLACE INTO TABLE page_restrictions" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/revision.txt' REPLACE INTO TABLE revision" ;
  $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/text.txt' IGNORE INTO TABLE text" ;

10. Зарезервируйте аккаунты участников.

  $ perl users.pl

11. Обновите вторичные таблицы вашей новой вики (pagelinks, recentchanges и т.д.):

  $ cd ПАПКА_С_ВАШЕЙ_MEDIAWIKI
  $ php maintenance/rebuildall.php

Сохранение вашей вики завершено. Только не забудьте добавить скрипт givepassword.pl в ваш список задач cron: выполните команду

  $ crontab -e

(от имени суперпользователя) и добавьте следующую строку:

  0,10,20,30,40,50 * * * * ( cd ПУТЬ_К_ВАШИМ_БОТАМ && /usr/bin/perl givepassword.pl >/dev/null 2>&1 )

[править] Оптимизация скриптов при наличии аккаунта бота

В text.pl, измените строку 'gaplimit => 500' на 'gaplimit => 5000', также увеличьте 'rvlimit' с 50 до 5000.

В images.pl, измените 'gailimit' и 'iilimit' на 5000 таким же образом.

В logs.pl, измените 'lelimit' на 500.

В users.pl измените 50 на 500 в 'my $MAX_UINFO_PER_REQUEST = 50;'.

[править] Общая таблица 'users'

Если вы имеете другой википроект на вашем сервере, и хотите чтобы таблица участников вашей новой вики была объединена с существующей таблицей 'user', напишите название базы данных существующей вики в следующей строке users.pl (между одиночными кавычками):

  our $SHARED_DB = '';

[править] Использование на Windows

Крайне рекомендуется запускать эти скрипты из-под операционной системы UNIX (например через SSH на сервере вашей новой вики). Однако, я обратил внимание на просьбы пользователей Windows, и эти скрипты можно использовать под данной операционной системой. См. неофициальное руководство.

[править] Ограничения

  • Сохраняется не более 500 удаленных правок для каждого названия страницы.
  • Удаленные изображения не сохраняются.

[править] Последняя информация, загрузка

См. [ http://absurdopedia.net/wiki/User:Edward_Chernenko/MediaWikiDumper#Download ].

Использование MediaWikiDumper относится к теме «Техники и викиботы»   ±