Chapitre: Migration d'une application vers jelix 1.2.x
« Nouveautés | ^ Introduction |
− Table des matières
Lors d'une migration d'une version Jelix à une autre, il y a toujours au moins ces étapes à faire :
- Remplacer le répertoire
lib/
de jelix par celui contenu dans le paquet jelix 1.2. - Ne pas oublier de remettre dans le nouveau répertoire
lib/
vos éventuelles bibliothèques personnelles si vous en aviez mis dans l'ancien. - supprimer tous les fichiers dans le répertoire
temp/votre_appli
- adapter votre code en suivant les instructions indiquées pour chaque ancienne version de Jelix. Voir ci-dessous.
Mettre à jour depuis Jelix 1.2.9 ¶
- si vous le souhaitez, vous pouvez utiliser le nouveau système de hashage dans jAuth, apparue dans la version 1.2.10, pour stocker les mots de passe de manière plus sécurisée. Suivez alors la doc de migration dédiée.
Mettre à jour depuis Jelix 1.1.x ¶
Ce qu'il faut savoir avant de mettre à jour ¶
La gestion des modules a changé. Dans le fichier de configuration, unusedModules
, trustedModules
et checkTrustedModules
ne sont plus utilisés. Il y a maintenant une section "modules", dans laquelle un niveau d'accès de chaque module est déclaré.
Pour être utilisé, un module devrait être "installé". En fait un nouveau fichier installer.ini.php
est crée par le système d'installation de Jelix dans le répertoire de configuration, et contient, pour chaque point d'entrée, la liste des modules installés, et pour chaque d'eux, la version installée. Des nouvelles commandes "installapp" et "installmodule" sont fournies pour installer et mettre à jour les modules.
Migration ¶
Une commande "migrate" est fournie dans le but d'effectuer les modifications nécessaires dans le fichier de configuration de votre application et pour créer le fichier installer.ini.php
.
- sauver les fichiers de votre application, en particulier la configuration et la base de donnée. Si la commande migrate échoue durant l'installation virtuelle des modules, il vous faudra restaurer les fichiers originaux et supprimer les nouveaux fichiers avant de relancer la commande migrate. Il est d'ailleurs fortement conseillé de travailler avec un gestionnaire de code source tel que Mercurial, Git ou Subversion, cela facilite la restauration des fichiers modifiés.
- remplacer le répertoire
lib/
par lelib/
de Jelix 1.2 - vérifier que le
project.xml
est bon, qu'il contient une balise<jelix>
avec la version max à "1.1.*" et la liste des points d'entrées. Voir le chapitre sur ce point. - dans vos fichiers de configuration (
defaultconfig.ini.php
et autres fichiers ini):- mettre
checkTrustedModules
à "on" - supprimer de
modulesPath
, les répertoires où vous n'utilisez pas de modules - lister tous les modules qui peuvent être appelés depuis le web dans
trustedModules
- lister tous les modules non utilisés du tout dans
unusedModules
, en particulier, si dansmodulesPath
vous indiquezlib/jelix-admin-modules
et/oulib/jelix-modules/
, voyez la liste des modules dans ces répertoires (elle a changé depuis jelix 1.1) et indiquez les modules que vous n'utilisez pas.
- mettre
- aller dans
lib/jelix-scripts/
et lancerphp jelix.php --yourapp migrate
- si la commande migrate échoue (une erreur est affichée)
- si l'erreur est "Installation of modules failed", écraser les fichiers de votre application avec votre sauvegarde, écraser votre base avec votre sauvegarde, corrigez l'erreur, et relancez la commande migrate
- si il s'agit d'une autre erreur, corrigez l'erreur et relancez la commande migrate
- supprimer tous les fichiers de
temp/yourapp/
- lire la rubrique suivante pour effectuer des modifications dans votre code.
- tester votre application. Cela devrait être ok.
Un nouveau script d'installation yourapp/install/installer.php
a été créé, que vous pourrez utiliser plus tard (en ligne de commande) pour installer ou mettre à jour facilement votre application. Vous pouvez créer des scripts dans le répertoire install/
de vos modules, qui seront appeler pour installer ou mettre à jours les modules. Voir le chapitre correspondant dans le manuel.
Autres étapes de migration ¶
- Le support des anciens sélecteurs d'action et ancien nommage des classes tels qu'utilisés dans Jelix 1.0 beta ont été supprimés. Vous devrez modifier vos sélecteur et nom de classe si vous migrez depuis une très vieille version de jelix < 1.0
- Si vous utilisez directement
jelixuser.dao.xml
, vous devrez changer votre sélecteur : il a été supprimé du module jauth pour se retrouver dans le module jauthdb - Si vous aviez fait votre propre driver jDb avec un plugin pour jDaoGenerator, vous devrez modifier certains appels de méthodes car certaines d'entre elles ont été renommées. Une réécriture a été faite et vous pouvez redéfinir plus de méthodes.
- Pour les sources de données personnalisées pour jForms, remplacez le nom de l'interface
jIFormDatasource
parjIFormsDatasource
. - la méthode obsolète
jResponseHtml::_commonProcess()
a été supprimé (vous devez la renommer endoAfterActions
)
Mettre à jour depuis jelix 1.0 ¶
Suivez les indications de migration de Jelix 1.0 à Jelix 1.1 dans le manuel de Jelix 1.1. Vous pourrez ensuite migrer vers Jelix 1.2.