...
Sommaire outline true
Références
Contexte
Dans le cadre de la maintenance et de l’évolution de leur portail, le consortium ESUP a souhaité s’intéresser davantage quant à la migration de données d’un portail uPortal contenus dans une instance de base de données en version 3.2 vers une instance de base en version 4.x. Ce processus n’étant pas totalement défini et validé par Jasig, il est important d’en définir ses limites ainsi que la liste exhaustive des données traitées.
...
Il est également recommandé, une fois l’export terminé, de copier l’ensemble du répertoire d'export obtenu vers un répertoire de travail qui fera l’objet de différentes modifications nécessaires à la procédure de migration vers une version 4.x.
Import des données dans la version 4.x
Import des « channel-type »
Afin de réaliser un import de données cohérent, il est nécessaire de ne conserver dans le répertoire de travail que les fichiers « .channel-type » personnalisés, c’est-à-dire tout ceux qui ne sont pas natifs à une version 3.2 non-personnalisée. Tous les autres fichiers peuvent alors être supprimés.
Afin de réaliser cette opération avec précaution, nous proposons d’appliquer une méthode de comparaison entre le répertoire « channel-type » exporté depuis la version 3.2 « personnalisée » et le répertoire « channel-type » situé dans « UPORTAL_ROOT/uportal-impl/src/main/resources/properties/db/entities » d’un portail en version 3.2 et non-personnalisé.
Transformation des « channel-type »
Pour les « channel-type » restant, c’est-à-dire ceux à importer en version 4.x, il est alors nécessaire de les transformer en fichiers « .portlet-type.xml » tout en modifiant la définition contenu dans chacun des fichiers (Cf. https://wiki.jasig.org/display/UPM40/Upgrade+Data+Import).
Pour cela un script Shell Unix : « Migration-channel-type.sh » utilisant SED a été développé. Celui-ci permet de :
prendre en argument le répertoire contenant tous les « channel-type » à transformer.
Exemple de commande en résultant:Bloc de code language bash linenumbers true Migration-channel-type.sh « ./V3-EXPORT/channel-type ».
...
- ajouter l'entête de définition XML dans le fichier.
...
modifier la balise ouvrante :
Bloc de code language html/xml linenumbers true <channel-type script="classpath://org/jasig/portal/io/import-channel-type_v2-6.crn">
par la balise:
Bloc de code language html/xml linenumbers true <portlet-type xmlns="https://source.jasig.org/schemas/uportal/io/portlet-type" xmlns:ns2="https://source.jasig.org/schemas/uportal/io/permission-owner" xmlns:ns3="https://source.jasig.org/schemas/uportal/io/stylesheet-descriptor" xmlns:ns4="https://source.jasig.org/schemas/uportal/io/portlet-definition" xmlns:ns5="https://source.jasig.org/schemas/uportal" xmlns:ns6="https://source.jasig.org/schemas/uportal/io/user" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4.0" xsi:schemaLocation="https://source.jasig.org/schemas/uportal/io/portlet-type https://source.jasig.org/schemas/uportal/io/portlet-type/portlet-type-4.0.xsd">
...
- modifier la balise fermante : </channel-type> par </portlet-type>
- supprimer la ligne contenant la balise <type> qui n'est plus nécessaire pour les « portlet-type »
...
- modifier l'extension du fichier « .channel-type » par l'extension « .portlet-type.xml » utilisée en version 4.x
Exemple
...
pour le channel-type « Bookmarks_Portlet.channel-type »
...
Fichier « Bookmarks_Portlet.channel-type » avanttransformation :
...