Raccourcis : Contenu - rubriques - sous rubriques
EN FR
Jelix 1.2.13

Chapitre: Migration d'une application vers jelix 1.2.x

« Nouveautés ^ Introduction
Changer de langue : EN

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

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 le lib/ 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 dans modulesPath vous indiquez lib/jelix-admin-modules et/ou lib/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.
  • aller dans lib/jelix-scripts/ et lancer php 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 par jIFormsDatasource.
  • la méthode obsolète jResponseHtml::_commonProcess() a été supprimé (vous devez la renommer en doAfterActions)

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.