Migration 0.7 – 0.9 : points pratiques

Hier, nous avons installé Lodel 0.9. Aujourd’hui, le programme est plus compliqué : migrer des sites en 0.7 vers des sites en 0.9. Toujours avec l’aide du développeur de Lodel, ce qui accélère grandement les choses.
Les structures sont différentes entre la version 0.7 et 0.8 : par exemple, l’identifiant est unique en 0.8 et représentent un objet. En 0.7, le français est la langue de base, en 0.8, c’est l’anglais. Tout ceci nécessite quelques adaptations, qui seront rendues plus faciles grâce aux scripts de migration fournis, mais il est indispensable de bien connaître le modèle éditorial (ME) de l’ancienne version et le modèle éditorial pour la nouvelle version : c’est pourquoi, il est conseillé de faire en amont un travail complet de définition du modèle éditorial pour limiter les adaptations pour chaque site du paquet de sites à migrer. Les évolutions futures du modèle seront ensuite plus facile à mettre en oeuvre. En pratique, il est conseillé de définir un ME propre sur un site vide, de l’exporter au format XML dans le répertoire définit à l’installation de lodel et d’importer ce ME à l’étape d’import XML après la migration.

Au niveau des données

Il faut d’abord effectuer dans l’interface d’administration du site à migrer (0.7) un export des données. Ces données sont ensuite importées dans un lodel 0.7 utilisé uniquement pour la migration.
Le script va casser la base de données, il donc indispensable de travailler sur une copie du site en production pour que le site en production reste accessible. Après le passage de ce script, la base peut fonctionner en 0.8. Le script n’efface pas les données, les tables originelles sont copiées dans des tables nommées nom-table_old.

Migration

Tout ce qui est relatif au modèle éditorial porte pour l’exemple sur celui de Revues.org.

Copier le script https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/export_to_08.php?root=lodel à la racine du site en 0.7 (par exemple dans le répertoire mondomaine/monsite07). Copier également le script https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/lodel/scripts/07to08.php?root=lodel dans le répertoire lodel/scripts (mondomaine/monsite07/lodel/scripts).

Prêt? Alors lancez http://mondomaine/monsite07/export_to_08.php

A priori, il n’y a pas besoin de modifier les champs g_title et g_name, donc laisser la valeur par défaut. Le troisième champ sert à déplacer les documents annexes et les sources, on les déplacera manuellement dans une étape ultérieure. En résumé, on décoche tout.

La base de données est maintenant prête à être utilisée en 0.9. Il faut donc faire un dump de celle-ci, et l’importer dans un site en 0.9.

Nous pouvons maintenant effectuer la mise à jour du modèle éditorial via l’import XML.

Il va falloir indiquer à lodel comment se correspondent les champs entre les deux versions : l’ancien modèle éditorial est présenté à gauche, le nouveau est à droite.

Si le ME a été transformé par rapport au modèle par défaut, ne pas indiquer de correspondance et laisser le champ vide (dans la colonne nouveau ME), lodel ajoutera le champ.

Les classes du ME correspondent à des tables de la base de données. Chaque champ doit être compris dans un groupe de champs.

En 0.8, la classe documents est transformée en classe textes.

  • étape 1 : mise à jour des groupes de champs
  • étape 2 : mise à jour des classes. la classe documents n’a pas d’équivalent dans le ME et devient textes.
  • étape 3 : mise à jour des champs
  • étape 4 : conversion des types
    • plan = information
    • chercheur = individu
    • volume = rubrique
    • colloque = rubrique
    • regroupement = souspartie
    • docannexe-lienfichier = fichierannexe
    • docannexe* = lienannexe
    • breve = billet
    • presentation = information
    • regroupement-documentsannexes : pas d’équivalent
    • articlevide = article
    • objetdelarecension : pas d’équivalent
    • motcle = motclesfr
    • periode = chrono
  • étape 5 :
    Si jamais vous recevez comme nous l’erreur « unknown column mask », pas de souci, une petite modif de table dans mysql : alter table tablefields_oldME add mask text not null
  • étape 6 : on y est presque, il s’agit de faire la concordance pour les textes simples
    • lien = url
    • datepubli = date

La mise à jour du ME est presque terminée. On peaufine en lançant un dernier script complete.php qui est une compilation des scripts disponibles sur http://www.lodel.org/wiki/index.php/Migration_Lodel_0.7_vers_Lodel_0.8.

Il reste encore à transférer à la main les documents annexes et les fichiers sources (on l’avait laissé à faire pour plus tard…) : il faut copier en respectant les permissions sur les répertoires (donc utiliser les options p et r pour la commande cp). Donc, copier le répertoire docannexe de l’ancien site vers le nouveau site, ainsi que le répertoire lodel/sources. En 0.9, puisque la langue de base est l’anglais, docannexe contient un sous-répertoire file, ne pas renommer la copie du répertoire fichier du site en 0.7 : les répertoires file et fichier cohabiteront sans problème dans le répertoire docannexe et assureront la continuité dans le nommage des documents annexes.

Une dernière question sur l’indexation pour terminer la matinée…

Pour activer le moteur de recherche interne, il faut affecter la variable searchEngine à true dans le fichier lodelconfig.php global. Pour autoriser l’indexation d’un site, dans l’interface d’administration, cliquer sur le lien reconstruire l’index. Puis, après la création ou la mise à jour d’une entité, l’indexation automatique sera lancée .


Vous aimerez aussi...

1 réponse

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *