Migration des wikis : Différence entre versions
De Wicri Base 1.28
imported>Jacques Ducloy (→Variables shell) |
imported>Jacques Ducloy (→Via l'API) |
||
Ligne 316 : | Ligne 316 : | ||
</source> | </source> | ||
==Via l'API== | ==Via l'API== | ||
− | ===Pages=== | + | ===Pages complètes=== |
<source lang="sh"> | <source lang="sh"> | ||
php dumpBackup.php --full --filter=namespace:0 > ../../FTP/mainFull.xml | php dumpBackup.php --full --filter=namespace:0 > ../../FTP/mainFull.xml | ||
Ligne 329 : | Ligne 329 : | ||
</source> | </source> | ||
+ | ===Pages courantes=== | ||
+ | <source lang="sh"> | ||
+ | php dumpBackup.php --current --filter=namespace:0 > ../../FTP/mainCurrent.xml | ||
+ | </source> | ||
+ | |||
+ | <source lang="sh"> | ||
+ | wget http://ticri.univ-lorraine.fr/Wicri/France/FTP/mainCurrent.xml | ||
+ | |||
+ | php importDump.php ../../FTP/mainCurrent.xml | ||
+ | php rebuildrecentchanges.php | ||
+ | php initSiteStats.php --update | ||
+ | </source> | ||
===Images=== | ===Images=== | ||
===Les images=== | ===Les images=== |
Version du 20 juillet 2017 à 14:12
Cette page est un recueil de notes pour la migration des wikis.
Sommaire
Variables shell
Les variables shell sont à définir dans la page Projets:Installation de chaque wiki concerné.
Voici ici quelques exemples.
WIKI=http://ticri.univ-lorraine.fr/wicri-base.de
WIKI=http://ticri.univ-lorraine.fr/wicri.de
WIKI=http://ticri.univ-lorraine.fr/wicri-europa.de
WIKI=http://ticri.univ-lorraine.fr/wicri-base.pt
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/de
WIKI=http://ticri.univ-lorraine.fr/wicri-music.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Musique/en
WIKI=http://ticri.univ-lorraine.fr/wicri-meta.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Meta/en
WIKI=http://ticri.univ-lorraine.fr/wicri-saarland.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/Allemagne/Sarre/en
WIKI=http://ticri.univ-lorraine.fr/wicri-lor.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/France/Lorraine/en
WIKI=http://ticri.univ-lorraine.fr/wicri-france.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/France/en
WIKI=http://ticri.univ-lorraine.fr/wicri-gr.de
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/GrandeRegion/de
WIKI=http://ticri.univ-lorraine.fr/wicri-gr.en
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Europe/GrandeRegion/en
WIKI=http://ticri.univ-lorraine.fr/wicri-asie.fr
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Asie/fr
WIKI=http://ticri.univ-lorraine.fr/wicri-meta.fr
WIKI_TARGET=https://lorexplor.istex.fr/Wicri/Meta/fr
Vérifications
Pour obtenir la liste des espaces de nom.
curl "$WIKI/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml" | SxmlIndent
curl "$WIKI_TARGET/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml" | SxmlIndent
Pour obtenir la liste des pages de l'espace principal (en fait si elle dépasse 500)
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | wc
Les modèles
Pour les wikis anglais
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > templateOld
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > templateTarget
diff templateOld templateTarget | grep "<" | cut -b 2-
Pour les wikis français
Modèles à recopier
Modèle:Wicri thématique voir laboratoire Modèle:Wicri thématique voir laboratoire/sémantique Modèle:Wicri thématique voir personne Modèle:Wicri thématique voir personne/sémantique Modèle:Wicri thématique voir revue Modèle:Wicri thématique voir revue/sémantique Modèle:Wicri thématique voir région Modèle:Wicri thématique voir région/sémantique Modèle:Wicri thématique voir université Modèle:Wicri thématique voir université/sémantique Modèle:Wicri thématique voir ville Modèle:Wicri thématique voir ville/sémantique Modèle:Infobox Organisme Modèle:Nowrap begin Modèle:Nowrap end
Modèle:Infobox sémantique manifestation extensions Modèle:Infobox sémantique personne extensions Modèle:Infobox sémantique université extensions Modèle:Accès géographique
Modèle:Logo Wicri Rhénanie-Palatinat
Comparaisons
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apfrom=F&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apfrom=P&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
) | sort -u > modeleOld
(
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apfrom=F&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apfrom=P&apnamespace=10" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
) | sort -u > modeleTarget
diff modeleOld modeleTarget | grep "<"
diff modeleOld modeleTarget | grep "<" | cut -b 2-
Modèles à éviter de recopier
cat <<... >modeleNoCopy
Modèle:Job queue
Modèle:Documentation modèle
Modèle:Documentation modèle compliqué en sous-page
Modèle:Documentation modèle compliqué en sous-page/Documentation
Modèle:Documentation modèle en sous-page
Modèle:Documentation modèle utilisant les ParserFunctions en sous-page
Modèle:Modèle utilisant les ParserFunctions
Modèle:Modèle utilisant les ParserFunctions/Documentation
Modèle:Doc modèle
Modèle:Doc modèle/Documentation
Modèle:Liste éléments/1 espace
...
cat modeleNoCopy modeleTarget | sort -u > modeleTargetCorrige
diff modeleOld modeleTargetCorrige | grep "<" | cut -b 2- > modeles
Pour comparer des listes
diff modeleSemNew modeleSemOld | grep ">" | cut -b 3- | grep "Modèle:" | SxmlSelect -p " [[@1]]"
diff modeleSemNew modeleSemOld | grep ">" | cut -b 3- | grep "Attribut:" | SxmlSelect -p " [[@1]]"
diff modeleSemNew modeleSemOld | grep ">" | cut -b 3- | grep "Catégorie:" | SxmlSelect -p " [[:@1]]"
Les catégories
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=14" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > categoriesOld
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=14" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > categoriesTarget
diff categoriesOld categoriesTarget | grep "<"
diff categoriesOld categoriesTarget | grep "<" | cut -b 2-
Les attributs
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=102" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > attOld
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500&apnamespace=102" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > attTarget
diff attOld attTarget | grep "<"
diff attOld attTarget | grep "<" | cut -b 2-
Suite à améliorer
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=1" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=2" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=3" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=4" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=5" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=8" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=9" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=6" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=7" 2>/dev/null
)|SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=11" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=12" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=13" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=15" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=103" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=104" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=105" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=106" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=107" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=108" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=109" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=500" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=501" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
Liste de pages
Wiki moyen
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI/api.php?action=query&list=allpages&format=xml&apfrom=r&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
) | sort -u > pages
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI/api.php?action=query&list=allpages&format=xml&apfrom=l&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
curl "$WIKI/api.php?action=query&list=allpages&format=xml&apfrom=r&aplimit=500" \
2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1
) | sort -u > pages
Pour comparer
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=500" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > pagesOld
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=500" 2>/dev/null |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 | sort -u > pagesTarget
diff pagesOld pagesTarget | grep "<"
diff pagesOld pagesTarget | grep "<" | cut -b 2-
Pour les images
curl "http://ticri.univ-lorraine.fr/wicri.pool/api.php?action=query&list=allimages&ailimit=5&aifrom=COLLN&aiprop=url&format=xml" |SxmlIndent
curl "http://ticri.univ-lorraine.fr/wicri.pool/api.php?action=query&list=allimages&ailimit=50&aifrom=COLLN&aiprop=url&format=xml" 2>/dev/null | SxmlSelect -s api/query/allimages/img/attribute::url -p @s1
curl "$WIKI/api.php?action=query&list=allimages&ailimit=50&aiprop=url&format=xml" |SxmlIndent
curl "$WIKI/api.php?action=query&list=allimages&ailimit=50&aiprop=url&format=xml" | SxmlSelect -s api/query/allimages/img/attribute::url -p @s1
Espace Wicri
(
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=500" 2>/dev/null
curl "$WIKI/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=501" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 > wicriNamespaceOld
(
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=900" 2>/dev/null
curl "$WIKI_TARGET/api.php?action=query&list=allpages&format=xml&aplimit=100&apnamespace=901" 2>/dev/null
) |SxmlSelect -s api/query/allpages/p/attribute::title -p @s1 > wicriNamespaceTarget
Via l'API
Pages complètes
php dumpBackup.php --full --filter=namespace:0 > ../../FTP/mainFull.xml
wget http://ticri.univ-lorraine.fr/Wicri/France/FTP/mainFull.xml
php importDump.php ../../FTP/mainFull.xml
php rebuildrecentchanges.php
php initSiteStats.php --update
Pages courantes
php dumpBackup.php --current --filter=namespace:0 > ../../FTP/mainCurrent.xml
wget http://ticri.univ-lorraine.fr/Wicri/France/FTP/mainCurrent.xml
php importDump.php ../../FTP/mainCurrent.xml
php rebuildrecentchanges.php
php initSiteStats.php --update
Images
Les images
- Sur site de départ
mkdir FTP/images
cp -r fr/images/a FTP/images/.
cp -r fr/images/b FTP/images/.
cp -r fr/images/c FTP/images/.
cp -r fr/images/d FTP/images/.
cp -r fr/images/e FTP/images/.
cp -r fr/images/f FTP/images/.
cp -r fr/images/0 FTP/images/.
cp -r fr/images/1 FTP/images/.
cp -r fr/images/2 FTP/images/.
cp -r fr/images/3 FTP/images/.
cp -r fr/images/4 FTP/images/.
cp -r fr/images/5 FTP/images/.
cp -r fr/images/6 FTP/images/.
cp -r fr/images/7 FTP/images/.
cp -r fr/images/8 FTP/images/.
cp -r fr/images/9 FTP/images/.
cd FTP
tar -cvf images.tar images
- Sur cite cible
cd FTP
wget http://ticri.univ-lorraine.fr/Wicri/Ticri/FTP/images.tar
tar -xvf images.tar
mkdir files
cp images/*/*/* files/.
cd ../fr
php maintenance/importImages.php ../FTP/files
sudo chown -R www-data images/*
sudo chgrp -R www-data images/*