Pages enfant
  • Retour expérience - migration ENT UNR RUNN

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=201883661) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 5) afficher la version suivante »

Cette page présente un retour d'expérience en cours sur la plateforme ENT UNR RUNN qui devrait migrer de Esup 3.2 à Esup 4 cet été.

Cela correspond donc à notre procédure de migration en cours de mise au point.

Pour infos, l'ENT UNR RUNN utilise une base de données Postgresql 8.4.

Export

Version Esup 3.2.5 -> rel-3-2-patches

La tâche ANT crn-export sur Esup/uPortal 3.2 fonctionne chez nous correctement via différentes mises à jour : il nous a fallu notamment prendre en compte le patch suivant :https://github.com/Jasig/uPortal/commit/584a71aa4b4cc1c056177db502ec05ee6cb8ed9f

-> il me parait recommandé si possible de mettre à jour son portail par rapport à la branche rel-3-2-patches :https://github.com/Jasig/uPortal/tree/rel-3-2-patches

Le ant crn-export est censé ensuite fonctionner.

Cependant, il est préférable si possible d'apporter directement dans la base de données du socle  Esup / uPortal 3.2 quelques modifications.

Modifications BD

Supprimer les espaces dans les ss_name des up_ss_theme et up_ss_struct :

update up_ss_theme set ss_name='DLMXHTML' where ss_name='DLM XHTML';
update up_ss_theme set ss_name='UniversalityMobile' where ss_name='Universality Mobile';
update up_ss_theme set ss_name='UniversalityAndroid' where ss_name='Universality Android';
update up_ss_struct set ss_name='DLMTabsColumns' where ss_name='DLM Tabs and columns';
update up_ss_struct set ss_name='DLMMobileColumns' where ss_name='DLM Mobile columns';

De même pour vos thèmes spécifiques, par exemple :

update up_ss_theme set ss_name='UROUENDLMXHTML' where ss_name='UROUEN DLM XHTML';

Tenter d'éviter les erreurs type "No INIT_STRUCT_ID in UP_USER_LAYOUT for USER_ID: 13820 and LAYOUT_ID: 1" - A VALIDER ...

select count(*) from up_user where user_id not in (select user_id from up_user_layout);
insert into "up_user_layout" select '1', user_id, 'default layout', '1' from up_user where user_id not in (select user_id from up_user_layout);

Vérifier et nettoyer les identifiants/noms des groupes et canaux

Il est important qu'aucun groupe (de canaux ou de personnes) n'aie le même identifiant. Cela comprend aussi les groupes PAGS !

Par exemple, si vous avec un groupe de canaux qui s'appelle "Personnel" et un groupe PAGS qui s'appelle également "Personnel" cela posera problème lors de l'import dans uPortal4.

Il fait donc renommer les groupes si besoin, on peut aussi en profiter pour supprimer/nettoyer les groupes qui ne servent pas.

On peut faire cela via l'IHM simplement (sauf pour les groupes PAGS bien sûr).

De même pour les canaux, l'import dans uPortal4 requiert qu'aucun canal n'ait le même nom ...

ant crn-export

ant crn-export -Ddir=/tmp/export_ent_esup_uportal_325 -Dtype=all

Import

Importation "de base" du portail 4 

On importe les éléments requis et donnés par défaut d'Esup:uPortal :

ant initdb (voire ant initportal si on veut tout construire au passage)

Modifications de l'export issu du portail 3.2.5

channel-type entity-type

Certains éléments exportés sur la 3.2.5 ne sont plus à importer car dépréciés, et leurs "remplaçants" ont été importés via le initdb.

rm -rf channel-type entity-type

Il faut également supprimer l'usage des vieux channel-type dans les exports des layout :

find fragment-layout layout -exec sed -i 's/.*fname="header.*//' {} \;
find fragment-layout layout -exec sed -i 's/.*fname="portal_login_general.*//' {} \;
find fragment-layout layout -exec sed -i 's/.*fname="footer.*//' {} \;
find fragment-layout layout -exec sed -i 's/.*fname="DLMStaticMissingChannel.*//' {} \;
find fragment-layout layout -exec sed -i 's/.*fname="person-attributes.*//' {} \;

Si on utilisait des types maintenant dépréciés et qu'on ne souhaite (ou peut) pas remplacer, on peut supprimer leur utilisation, exemple :

rm channel/rss-reader.channel

find fragment-layout layout -exec sed -i 's/.*fname="rss-reader.*//' {} \;

theme -> stylesheet-descriptor

Le répertoire theme exporté ne sera pas importé car déprécié.

En lieu et place de chaque theme, il vous faut un stylesheet-descriptor.

Voyez notamment le fichier uportal-war/src/main/data/required_entities/stylesheet-descriptor/DLMXHTML.stylesheet-descriptor.xml qui présente le stylesheet-descriptor DLMXHTML.

Cet identifiant DLMXHTML est à mettre en relation directe avec la commande "update up_ss_theme set ss_name='DLMXHTML' where ss_name='DLM XHTML';" donnée ci-dessus.

Pour exporter un thème en stylesheet-descriptor on peut simplement partir d'une copie de DLMXHTML.stylesheet-descriptor.xml et y modifier le tag name en UROUENDLMXHTML par exemple et le default-value du skin (correspond à un identififant de skin).

On ajoutera ces fichiers dans un nouveau répertoire stylesheet-descriptor du répertoire précédemment exporté ( /tmp/export_ent_esup_uportal_325 ).

On peut y supprimer dans celui-ci au passage le répertoire theme ainsi que structure dont le pendant se retrouve aussi dans uportal-war/src/main/data/required_entities/stylesheet-descriptor/ :
DLMTabsColumns.structure -> uportal-war/src/main/data/required_entities/stylesheet-descriptor/DLMTabsColumns.stylesheet-descriptor.xml
DLMMobileColumns.structure -> uportal-war/src/main/data/default_entities/stylesheet-descriptor/DLMMobileColumns.stylesheet-descriptor.xml

Profiles android

Les profiles spécifiques android n'existent plus : un seul profile mobile est maintenant utilisé dans uPortal4.

-> on supprime les profiles android :

find profile -name "*android.profile" -delete

Migration de dlm.xml

La déclaration des "fragments de groupes" donnée dans le fichier dlm.xml est maintenant maintenu en base de données pour uPortal4.

L'export de votre la de données uPortal3.2 contient la définition de ces fragments de groupes, pour que ceux-ci soient bien importés il faut que uPortal4 aient connaissance de leur existence (définition).

On migre donc  le dlm.xml avant toute import pour pour voir l'ajouter à l'export.

La migration est assez simple puisqu'elle consiste à éclater le dlm.xml en autant de fichiers qu'il y a de définition de fragments. Si le nombre de fragments est assez faible, le faire à la main est tout à fait possible. Exemple d'un fichier member-univ-rouen-lo.fragment-definition.xml issu du dlm.xml :

<fragment-definition xmlns:dlm="http://org.jasig.portal.layout.dlm.config" script="classpath://org/jasig/portal/io/import-fragment-definition_v3-1.crn">
  <dlm:fragment name='Pers UnivRouen' ownerID='member-univ-rouen-lo' precedence='50'>
    <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.GroupMembershipEvaluatorFactory'>
        <attribute mode='deepMemberOf' name='Personnels - Université de Rouen'/>
    </dlm:audience>
  </dlm:fragment>
</fragment-definition>

On place l'ensemble de ces fichiers dans un répertoire fragment-definition dans le répertoire correspondant à l'export de la base 3.2 ( /tmp/export_ent_esup_uportal_325 )

ant data-import

ant data-import -Ddir=/tmp/export_ent_esup_uportal_325

Debug de la base de données

Après importation, puis démarrage du portail, on obtient la "fameuse" erreur "No INIT_STRUCT_ID in UP_USER_LAYOUT" dans les logs uPortal, le portail étant bugué (écran d'exception uPortal4).

Pour y remédier, on lance :

insert into "up_user_layout" select '1', user_id, 'default layout', '1' from up_user where user_id not in (select user_id from up_user_layout);

-> à débugguer, regarder si une issue est donnée autour de cela dans le JIRA uPortal ...

Problèmes

Voici les problèmes que nous avons pu constater et qui restent à résoudre.

Import layouts :

Sur 9928 layouts d'utilisateurs, 825 ne passent pas à l'importation ; ils perdraient donc leur personnalisation du layout ~ structure de l'ENT.

  • Pour 758 d'entre eux, la cause serait (à nouveau) un pb de "No INIT_STRUCT_ID in UP_USER_LAYOUT"
  • Pour les autres, a priori ils font références à des channels non importées simplement : uportal-data-dictionary, portal_userpreferences_dlm -> à supprimer dans leur layout ou à rajouter

Préférences portlets : par défaut et personnalisés

Les préférences des portlets (droit d'édition ou non) ne semblent pas avoir été récupérées.

Les préférences utilisateurs ne semblent pas avoir été récupérées.

-> à creuser : issue dans le jira uPortal ?

  • Aucune étiquette