Jump to content
MediaWiki

Příručka:ImportDump.php

From mediawiki.org
This page is a translated version of the page Manual:ImportDump.php and the translation is 100% complete.
Soubor MediaWiki: importDump.php
Lokalita: maintenance/
Zdrojový kód: master1.44.21.43.51.39.15
Třídy: BackupReader
Doporučená metoda pro obecné použití, ale pomalá pro velmi velké datové sady. Viz #Import anglické Wikipedie nebo jiných velkých wikin níže.

Soubor importDump.php je údržbový skript pro import XML souborů s dumpem do aktuální wiki. Načte stránky ze souboru XML, jak je vygeneruje příkaz Special:Export nebo dumpBackup.php , a uloží je do aktuální wiki. Je to jeden ze skriptů údržby MediaWiki a nachází se ve složce údržby vaší instalace MediaWiki.

Popis operace

Skript hlásí průběžný postup ve 100stránkových krocích (ve výchozím nastavení) a pro každý přírůstek hlásí počet stránek a revizí importovaných za sekundu, takže můžete sledovat jeho aktivitu a zjistit, zda se nezasekl. Mezi jednotlivými kroky může trvat 30 sekund nebo i více.

Skript je robustní, protože přeskakuje dříve načtené stránky, místo aby je přepisoval, takže po přerušení a restartu může poměrně rychle pokračovat tam, kde skončil. Při tom se stále zobrazuje postup, který docela rychle přeskakuje.

Stránky budou importovány se zachováním časového razítka každé úpravy. Kvůli této funkci, pokud je importovaná stránka starší než stávající stránka, se pouze naplní historie stránky, ale nejnovější revize se nenahradí starší. Pokud toto chování není žádoucí, měly by být stávající stránky před importem nejprve smazány, jinak je bude nutné upravit a vrátit se k poslední importované revizi nalezené v historii stránek.

Wiki je během importu použitelná.

Wiki vypadá divně, chybí jí většina šablon a je tam spousta červených odkazů, ale s postupujícím importem se to zlepšuje.

Příklady

Pokud máte přístup k shellu, můžete zavolat importdump.php ze složky údržby takto (v případě potřeby přidejte cesty):

phpimportDump.php--conf../LocalSettings.php/path_to/dumpfile.xml.gz--username-prefix=""

nebo toto:

phpimportDump.php<dumpfile.xml

kde dumpfile.xml je název souboru s výpisem XML. Pokud je soubor komprimovaný a má příponu .gz nebo .bz2 (ale ne .tar.gz nebo .tar.bz2), dekomprimuje se automaticky.

Kvůli této chybě může být nutné při importu souborů zadat --username-prefix="".

Poté použijte ImportImages.php k importu obrázků:

php importImages.php ../path_to/images
Spuštění importDump.php může trvat poměrně dlouho. U velkého výpisu Wikipedie s miliony stránek to může trvat dny, a to i na rychlém serveru. Pro rychlejší import přidejte --no-updates. Také si všimněte, že informace v Importu o slučování historií atd. platí také.

Po spuštění příkazu importDump.php můžete spustit příkaz rebuildrecentchanges.php , abyste aktualizovali obsah stránky Special:Recentchanges.

Pokud jste importovali výpis s parametrem --no-updates, budete muset spustit příkaz rebuildall.php , abyste naplnili všechny odkazy, šablony a kategorie.

Volby

Volba/Parametr Popis
--report Po každých n zpracovaných stránkách hlásí pozici a rychlost.
--namespaces Importujte pouze stránky z jmenných prostorů patřících do seznamu názvů jmenných prostorů oddělených svislou čárou nebo indexů jmenných prostorů.
--dry-run Analyzovat výpis bez skutečného importu stránek.
--debug Vypsat další podrobné ladicí informace.
--uploads Zpracovat data pro nahrávání souborů, pokud jsou zahrnuta (experimentální).
--no-updates Zakázat aktualizace tabulky odkazů. Je to rychlejší, ale wiki je pak v nekonzistentním stavu. Po importu spusťte příkaz rebuildall.php pro opravu tabulky propojení.
--image-base-path Importovat soubory ze zadané cesty.
--skip-to Začněte od daného čísla stránky, přeskočte prvních n-1 stránek.
--username-prefix Přidává předponu k uživatelským jménům. Kvůli této chybě může být při importu souborů nutné zadat --username-prefix="".


Časté dotazy

Jak nastavit ladicí režim?

Použijte volbu příkazového řádku --debug.

Jak provést zkušební spuštění (bez přidání dat do databáze)?

Použijte možnost příkazového řádku --dry-run

Chybové zprávy

Nepodařilo se otevřít stream

V případě, že se zobrazí chyba "failed to open stream: No such file or directory" (nepodařilo se otevřít stream: Žádný takový soubor nebo adresář), ujistěte se, že zadaný soubor existuje a že k němu má PHP přístup.

Chyba při spuštění importImages

Napsáno

roots@hello:~# php importImages.php /maps gif bmp PNG JPG GIF BMP

Chyba

> PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
> Could not open input file: importImages.php

Příčina

Před spuštěním souboru importImages.php je nejprve nutné změnit adresář do složky údržby, která obsahuje skript údržby importImages.php.

Chyba při spuštění MAMP

DB connection error: No such file or directory (localhost)

Řešení

Použití specifických přihlašovacích údajů k databázi

$wgDBserver = "localhost:/Applications/MAMP/tmp/mysql/mysql.sock";
$wgDBadminuser = "XXXX";
$wgDBadminpassword = "XXXX";

Import anglické Wikipedie nebo jiných rozsáhlých wiki stránek

U velmi velkých datových sad může importDump.php trvat dlouho (dny nebo týdny). Existují alternativní metody, které mohou být mnohem rychlejší pro úplnou obnovu webu, viz Příručka:Import výpisů XML .

Pokud vám ostatní metody nefungují, zde je několik tipů, jak použít importDump.php pro import velkých wikin, abyste co nejvíce zkrátili dobu importu...

Paralelizace importu

Můžete zkusit spustit importDump.php vícekrát současně na stejném výpisu s použitím možnosti --skip-to...

V experimentu na Ubuntu byl skript spuštěn (na dekomprimovaném výpisu) několikrát současně v samostatných oknech s použitím volby --skip-to. Na čtyřjádrovém notebooku spuštění skriptu ve 4 oknech zrychlilo import čtyřnásobně. V experimentu byl parametr --skip-to nastaven na 250 0001 000 000 stránek od sebe na instanci a import byl monitorován (čas od času kontrolován), aby se každá instance zastavila předtím, než se na ni naváže další.

Poznámka Poznámka: Tento experiment nebyl vyzkoušen s více instancemi bez parametru "--skip-to"", aby se předešlo potenciálním kolizím – pokud to zkusíte bez --skip-to nebo necháte instance navzájem dohnat, napište prosím své výsledky sem. V tomto experimentu se 2 okna načítala a nezobrazovaly se žádné chybové zprávy. Zdálo se, že instance skriptu přeskakují jedna přes druhou.

Použití --skip-to se liší od běžného provozu v tom, že během přeskakování se nezobrazují kroky postupu, místo toho se zobrazuje pouze (blikající) kurzor. Po několika minutách se začnou zobrazovat zprávy o přírůstcích.

Segmentace dat

Možná by bylo vhodné data nejprve segmentovat pomocí děliče XML a poté je importovat paralelně. Pak spusťte importDump.php na každý segment v samostatném okně, čímž byste se vyhnuli potenciálním kolizím. (Pokud se vám v tomto procesu podařilo rozdělit výpis tak, aby fungoval, prosím, napište sem postup).

Nejprve importujte nejužitečnější jmenné prostory

Pro urychlení importu nejužitečnějších částí wiki použijte parametr --namespaces. Nejprve importujte šablony, protože články bez funkčních šablon vypadají hrozně. Pak importujte články. Nebo proveďte obojí současně ve více oknech, jak je popsáno výše, a nejprve spusťte šablony, protože se importují rychleji a okno (okna) článků je nestíhají.

Poznámka Poznámka: Hlavní jmenný prostor nemá prefix, a proto musí být zadán pomocí 0. Funkce "Main" (hlavní) a "Article" (článek) se nespustí a vrátí chyby.

Po dokončení bude nutné znovu použít importDump.php k získání stránek ve všech ostatních jmenných prostorech.

Odhad, jak dlouho to bude trvat

Než budete moci odhadnout, jak dlouho bude import trvat, musíte zjistit, kolik stránek celkem importovaná wiki obsahuje. To se v každé wiki zobrazuje jako Special:Statistics. K říjnu 2023 měla anglická Wikipedie přes 59 000 000 stránek, včetně všech typů stránek, jako jsou diskusní stránky, přesměrování atd., ale bez obrázků ("souborů").

Chcete-li zjistit, jak rychle import probíhá, přejděte na stránku Special:Statistics ve wiki, do které importujete. Poznamenejte si čas a poznamenejte si celkový počet stránek. Pak se později vraťte a podívejte se, o kolik se toto číslo změnilo. Převeďte to na počet stránek za den a poté toto číslo vydělte celkovým počtem stránek importované wiki, abyste zjistili, kolik dní bude import trvat.

Například ve výše zmíněném experimentu, při importu s využitím paralelizace a pohledu na celkový počet stránek v Special:Statistics, wiki roste přibližně o 1 000 000 stránky denně. Import 59 000 000 stránek (k říjnu 2023) na anglickou Wikipedii (bez obrázků) tedy bude tímto tempem trvat přibližně 59 dní.

Poznámky

Od verze MediaWiki 1.29 (T144600) importDump.php neaktualizuje statistiky. Po importu byste měli ručně spustit příkaz initSiteStats.php , abyste aktualizovali počet stránek a revizí.


Řešení problémů

Viz také: meta:Data dumps/ImportDump.php#Common problems and solutions

Pokud se při importu souborů vyskytnou chyby, může být nutné použít volbu --username-prefix.

Související odkazy

AltStyle によって変換されたページ (->オリジナル) /