07-01-2020, 15:51
Édition du 19 juin 2020:
- section "Choix des apps installées" ajoutée.
Édition du 10 juin 2020:
- l'URL du dépôt de source a été mise à jour suite au passage à github.
- une section "Mise à jour" a été ajoutée.
Édition du 19 février 2021:
- correction de quelques typo.
Introduction
Il s'agira ici d'installer Creme 2.1 soit depuis zéro, soit depuis une installation de Creme2.0 (notez que vous ne devriez migrer que d'une version à la fois -- donc si vous êtes en 1.8, vous devez migrer vers 2.0 avant de pouvoir migrer vers 2.1 par exemple).
Ce tutoriel d'installation parle des plateformes suivantes :
Le code de Creme ne faisant pas spécialement de "linuxeries", l'installer sur d'autres Unix (comme FreeBSD ou MacOSX) ne devrait pas dans l'absolu poser de souci particulier. Il nous est cependant difficile pour le moment de vous indiquer une marche à suivre précise n'utilisant pas (encore) ces systèmes. Là encore tout retour de personnes ayant essayé est le bienvenu.
Pour ce tutoriel d'installation de Crème CRM on va faire les choses du mieux possible. On va donc installer des choses qui pourraient vous sembler inutiles mais qui à terme permettront d'avoir une installation pérenne et qui ne rentrera pas en collision avec d'autres logiciels que vous pourriez vouloir installer.
Ce tutoriel vous permet d'installer tout le nécessaire pour faire fonctionner Crème avec le serveur de développement intégré dans Django. Le serveur de développement n'est pas une façon pérenne de faire fonctionner une application Django. Mais c'est un moyen simple de vérifier que tout fonctionne et vous pouvez faire quelques tests avec pour vérifier que Crème vous convient. Le tutoriel vous permettant d'utiliser Apache avec Crème (plus compliqué à faire fonctionner, mais c'est une façon pérenne de faire les choses) est le sujet d'un autre billet indiqué à la fin.
Une remarque très importante : si l'utilisation du serveur de développement est déconseillé pour une utilisation sur du long terme dans le cadre d'une machine personnelle, elle est par contre totalement interdite dans le cadre d'un hébergement sur un serveur. Si vous comptez installer Crème tout de suite sur un serveur, il ne faut pas, pas une seule seconde, utiliser le serveur de développement. En effet celui-ci est fait pour le test et rien d'autre. Il n'est pas prévu, ni en terme de performance ni en terme de sécurité, pour être utilisé dans un vrai contexte de production.
Avant propos
Notre objectif est d'installer & configurer un environnement Virtualenv. Virtualenv vous permet en effet d'avoir plusieurs environnements virtuels Python. L’intérêt est de pouvoir cloisonner les dépendances par projet. Vous êtes ainsi sûr que votre Crème n’arrêtera pas de fonctionner juste parce que vous avez dû mettre à jour une librairie Python pour pouvoir installer un autre logiciel. On ne va pas se contenter d'installer Virtualenv et on va installer aussi Virtualenvwrapper qui est une surcouche à Virtualenv et qui vous simplifiera les choses.
À propos des migrations : nous allons installer Creme 2.1 en parallèle de votre installation de Creme 2.0, en dupliquant les données. Ainsi en cas de gros problèmes vous pourrez revenir à votre installation précédente, que nous n'aurons pas détruite ; les éventuelles nouvelles données rentrées dans Creme 2.1 seront évidemment absentes de votre vieille installation, mais il s'agit ici plutôt de détecter les gros dysfonctionnements que vous auriez immédiatement.
Installation de Python
Pour commencer, il vous faut avoir Python 3 sur votre système (notez bien que Creme 2.1 ne fonctionnera pas avec Python 2 -- python 2.7 étant la dernière version de la branche 2 et est obsolète depuis le 1er Janvier 2020) ainsi que l'installeur 'pip' qui permet de télécharger & installer des paquets python.
Sous Windows :
Il faut vous rendre ici : https://www.python.org/downloads/windows/
L'installeur pour Windows contient l'interpréteur Python ainsi que 'pip'.
Note: il est important que vous partiez d'une installation vide de Python ; si vous avez déjà des paquets externes pour Python qui ne sont pas installés dans un Virtual Env, ces derniers prendront le pas sur les paquets du Virtual Env (et donc de mauvaises versions de paquets pourront être utilisées empêchant Creme de fonctionner) (ce problème étant spécifique à Windows).
Sous Linux :
Utilisez le gestionnaire de paquet de votre distribution ; si vous êtes sous Debian ou Ubuntu il vous suffit de faire :
Installation des logiciels externes
En plus de Python il va vous falloir installer :
Sous Windows, wampserver vous facilitera sûrement la vie si vous comptez installer Apache et MySQL.
Sous Linux, vérifiez que vous avez les paquets suivants (ce sont les noms sous Ubuntu ; ils peuvent être différents sous une autre distribution évidemment) :
Si vous comptez exporter des factures/devis en PDF, il vous faudra aussi Latex ; notez que c'est juste nécessaire exporter les factures en PDF, et que vous pouvez quand même vous servir de la partie facturation de Creme sans ça.
Le site contient bien de quoi installer pour Windows, mais ce n'est pas forcément facile d'avoir tout les modules Latex qu'il faut ; une prochaine version de Creme devrait proposer d'autres backends ne nécessitant que python ce qui simplifiera tout ça
Sous Ubuntu18.04 voici la liste des paquets nécessaire pour exporter correctement le template de base :
(Linux) Installation des bibliothèques "système"
Pour pouvoir installer certains paquets dans votre environnement Python, il vous faudra certaines bibliothèques de développement afin de pouvoir compiler certains paquets.
Avant d'aller plus loin, il faut que vous vérifiez que les packages suivants sont bien installés, sinon, installez les :
Installation de l'environnement virtuel
Ensuite, vous allez installer Virtualenvwrapper qui installera automatiquement Virtualenv en même temps.
Pour cela il vous suffit de taper :
Sous Windows, installez aussi la version Windows de virtualenvwrapper :
Nous allons va pouvoir créer le Virtualenv pour Crème.
À propos des migrations : créez un nouveau Virtualenv pour Creme 2.1, et gardez donc intact celui de de votre Creme 2.0.
Il reste une dernière petite config à faire, à savoir indiquer où vous allez stocker vos différents Virtualenv (Note: Ubuntu 18.04 fait cette partie toute seule et vous pouvez l'ignorer -- les autres systèmes en ont besoin en revanche). Je vais partir du principe que vous utilisez le répertoire Envs à la racine de votre home. Il va falloir que dans le fichier de configuration de votre shell (.bashrc si vous utilisez le bash) vous configuriez la variable WORKON_HOME. Cela se fait de la manière suivante (pour bash) :
Une fois cela fait et après avoir rechargé votre configuration, vous pouvez créer votre Virtualenv en tapant la commande :
Par exemple, sous Ubuntu 18.04, le chemin vers python 3 est "/usr/bin/python3.6".
Si "mkvirtualenv" n'existe pas (Debian 10):
Ajoutez au fichier .bashrc la ligne suivante
Une fois que votre Virtualenv est créé, il faut l'activer pour votre console. Vous allez en effet installer de nouveaux packages Python et faire des commandes Django et tout doit se faire dans votre Virtualenv. L'activation d'un Virtualenv se fait avec la commande "workon". Si vous la lancez sans argument elle vous donnera la liste des Virtualenv possibles. Avec un nom de Virtualenv, elle l'active.
Ici, vous devez donc taper
Il y a d'autre commandes intéressantes dans Virtualenvwrapper. Vous les trouverez dans le man. Une commande qui vous sera utile est la commande "deactivate" qui permet de sortir d'un Virtualenv pour revenir à votre environnement système classique.
Maintenant que vous avez activé votre Virtualenv, il vous faut récupérer Crème. Pour cela il suffit d'utiliser mercurial git. Tapez simplement à l'endroit où vous voulez déposer le code source de Crème :
Les sources de Crème contiennent (dans le répertoire 'creme/)' des fichier vont servir à installer de manière automatique les dépendances selon vos besoins :
- 'requirements.txt' pour une installation avec une base de données SQLite.
- 'requirements-mysql.txt' pour une installation avec une base de données MySQL.
- 'requirements-pgsql.txt' pour une installation avec une base de données PostgreSQL.
(les avantages et inconvénients des différents type de base sont expliqués plus bas si vous avez des doutes)
Si vous souhaitez utiliser SQLite, il vous suffit donc de taper (adaptez le chemin suivant l'endroit d'où vous vous trouvez)
alors que pour PostgreSQL ça serait :
Notes sur MariaDB
Si vous avez installé MariaDB plutôt que MySQL (paquet "libmariadbclient-dev" sur Debian10), et que vous avez une erreur " /bin/sh: 1: mysql_config: not found", créez le lien symbolique suivant :
Notes pour Windows:
Copie des fichiers uploadés par les utilisateurs
Cette partie ne concerne que les migrations depuis Creme 2.0 (passez à la suite si vous installez depuis 0).
Dans votre installation de Creme 2.0, allez dans le répertoire creme/media/upload. Si vous avez utilisé des Documents dans Creme, ou bien exporté des factures/Devis en PDF, vous devriez avoir des sous-répertoires ("documents", "billing" etc...). Si c'est bien le cas, copier ces répertoires (et leur contenu évidemment) dans le répertoire creme/media/upload de votre installation de Creme 2.1
Note: il est important de le faire avant la commande "migrate" (voir plus bas), car celle-ci en plus de modifier la base de données SQL pourrait tout à fait modifier les fichiers uploadés (leur nom en interne ou leur emplacement, pas leur contenu évidemment) ; ce n'est pas le cas dans la migration 2.0 vers 2.1, mais c'est déjà arrivé (migration 1.6 vers 1.7). Aussi nous préconisons cette approche.
Configuration de la base de données
Django utilise un système de configuration qui utilise un fichier python stockant des valeurs ; ce fichier s'appelle de base 'settings.py' (vous le trouverez dans le répertoire 'creme/'). Mais afin de ne pas modifier un fichier "appartenant " à Creme (ce qui vous obligerez à gérer des conflits lors de mise-à-jour du code de Creme), nous allons mettre la configuration spécifique à votre serveur dans un fichier qui vous appartient.
Rendez-vous dans le répertoire 'creme/' et créez un fichier de configuration propre à votre machine: local_settings.py
(attention le nom est important, puisque settings.py importe explicitement ce fichier s'il existe).
À propos des migrations : copiez le fichier local_settings.py de votre vieille installation plutôt que d'en créer un depuis zéro. Il se pourrait que certaines variables soient devenues obsolètes (nous parlons ici de variables un peu pointues, pas les basiques vues ici) ; dans ce cas des messages d'erreurs vous l'indiqueront dans votre terminal au lancement du serveur.
Attention: Comme nous l'avons dit en introduction, nous allons dupliquer la base de données plutôt que d'en créer une nouvelle, donc n'oublier pas de mettre le nom de votre nouvelle base dans ce fichier local_settings.py copié. En effet comme il contient le nom de votre ancienne base, c'est celle-ci qui serait migrée (mas de panique si vous avez bien dupliqué au préalable, au pire votre ancienne base n'est pas perdu elle a juste un nouveau nom).
Pour le moment, Il doit contenir les lignes suivantes (que nous allons compléter par la suite) :
Avant de passer au déploiement de Crème proprement dit, on va devoir configurer la base de données. Creme est testé avec trois systèmes de gestion de base de données: SQLite, MySQL & PostgreSQL. Django permet aussi d'utiliser une base Oracle, mais nous n'avons jamais eu l'occasion de tester une telle configuration (mais pourquoi utiliser un SGBDR propriétaire quand l'offre libre est aussi bonne ?). Il existe aussi des backends pour d'autres SGBDR (firebird, sqlserver ...) qui sont distribués à part de Django ; là encore nous ne les avons pas testé, et ne pouvons garantir leur fonctionnement (mais si vous avez essayé, vos retours sont évidemment les bienvenus, ne serait-ce que par curiosité technique).
SQLite
SQLite est surtout utile si vous êtes un développeur, afin de tester rapidement votre travail. C'est aussi envisageable si vous comptez utiliser Creme
en tant qu'application monoposte et avec peu de données (c'est sûrement une mauvaise idée pour des dizaines de milliers de fiches). Si vous n'êtes pas dans ces 2 cas, nous vous déconseillons vivement une telle configuration.
Si vous choisissez SQLite, la configuration est très simple (pas d'utilisateur ou de mot de passe) ; éditez la variable DATABASES de votre local_settings.py ainsi :
Vous devez évidemment mettre une chemin valide en tant que NAME (le fichier sera créé s'il n'existe pas, mais faites attention que Creme ait bien les permissions d'écrire dans le répertoire choisi).
À propos des migrations : pour dupliquer une base SQLite il suffit de copier l'ancien fichier.
MySQL
MySQL est un choix classique pour un serveur de production ; il est très répandu et facile à configurer. En revanche, il n'est pas toujours possible de le configurer aussi finement qu'on le voudrait, et a tendance à voir ses performances varier étrangement au grès des versions (la plupart du temps dans le bon sens, mais pas toujours) . C'est donc un bon choix si vous le connaissez déjà, et que vous ne visez pas des volumes importants de données (pour quelques centaines de milliers de fiches ça devrait être satisfaisant -- ça dépend de votre matériel évidemment).
Pour que Crème puisse utiliser MySQL, il faut créer une base de données et un utilisateur qui a les droits sur celle-ci. Vous pouvez bien entendu le faire en graphique grâce à un outil d'administration de BD.
Voici comment le faire en console. Notez qu'en fonction de la version de MySQL les commandes peuvent changer ; les instructions suivantes fonctionnent avec MySQL 5.7 (des Ubuntu LTS 16.04 & 18.04) ; référez vous à la documentation de votre version de MySQL les commandes ne fonctionnent pas.
À propos des migrations : il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. Par exemple dans PHPMyadmin, si vous allez sur votre ancienne base, il y a un onglet "Opérations" qui contient une section "Copier la base de données vers" (qui permet de conserver les privilèges -- normalement la case pour les conserver est cochée par défaut). N'oubliez pas plus bas de mettre le nouveau nom dans la variable 'NAME'.
D'abord logguez vous dans MySQL avec la commande suivante :
Puis passez sur la base de configuration avec la commande :
Ajoutez maintenant votre utilisateur (en remplaçant les valeurs d'exemple par vos propres valeurs) avec la commande :
Puis nous créons la base de données :
et enfin nous donnons à votre l'utilisateur toutes les permissions sur la base de données de Creme :
Éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez si nécessaire remplacer les noms de la base, de l'utilisateur et son mot de passe par les valeurs que vous avez défini précédemment) :
PostgreSQL
PostgreSQL est sûrement le meilleur choix pour les volumes de données importants ; non seulement ses performances sont excellentes, mais c'est aussi le SGBDR le plus rigoureux en terme de cohérence des données.
Les instructions du début de ce tutoriel étaient plutôt faites pour un déploiement avec MySQL ; aussi il va falloir installer des paquets supplémentaires si vous souhaitez utiliser PostgreSQL.
Comme pour MySQL, il vous faut maintenant créer un utilisateur dédié à Creme, ainsi qu'une base sur lequel l'utilisateur a tous les droits. Là encore c'est possible en console comme en graphique (en graphique, le programme "pgAdmin III" fait un très bon travail).
À propos des migrations : comme déjà dit, il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. N'oubliez pas ci-dessous de mettre le nouveau nom dans la variable 'NAME'.
Lorsque c'est fait, éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez remplacer les noms de la base de l'utilisateur et son mot de passe par les valeurs que vous avez choisies juste avant) :
Remplissage de la base de données
Vous devez revenir dans le répertoire 'cremecrm/' (et ne pas rester dans le répertoire 'creme/') ; il vous suffit de taper :
Avec la commande suivante, vous allez générer votre clé secrète ; il faudra mettre la valeur retournée dans votre local_settings.py, dans la variable SECRET_KEY (entre les '', à la place de "valeur_temporaire"; exemple: SECRET_KEY = 'abcd123'):
Avec la commande suivante, on va créer les tables de la base :
Puis on remplit la base avec les données initiales (utilisateur administrateur, société initiale, configuration par défaut etc…) :
Ne vous inquiétez pas des messages du genre , ils indiquent juste que certaines apps n'ont pas besoin de créer des données initiales.
À propos des migrations :
Même si ce n'est pas indispensable, il peut être bien de supprimer les sessions existantes (elles peuvent contenir des informations obsolètes) :
Génération des bundles d'assets statiques
Il s'agit de créer des fichiers optimisés pour le CSS et le JavaScript, ainsi que des images avec des noms pensés pour être mises en cache intelligemment :
Voici la sortie que vous devriez avoir :
Choix des apps installées
Pour des raisons de simplicité, nous avons choisi d'installer Creme avec sa liste d'apps par défaut, qui couvre la plupart des besoins courants. Sont écartées de cette liste l'app "mobile" pour proposer en plus un ensembe de vues plus adapatées aux smartphones, et "polls" qui permet de faire des questionnaires/sondages internes.
Creme étant modulaire, vous pouvez choisir plus finement les apps installées ; même si pour une première installation, vous devriez sûrement garder la liste de base (vous pouvez passer au chapitre suivant). Pour avoir une liste personnalisée, copiez la variable INSTALLED_CREME_APPS de settings.py dans votre fichier local_settings.py ; c'est cette liste copiée que vous modifierez (évidemment ne modifiez jamais settings.py).
2 points importants :
- vous ne pouvez enlever (en pratique mettez plutôt en commentaire avec un '#' en début de ligne) que les apps dans la section CREME OPTIONAL APPS, qui sont optionnelles comme l'indique le nom.
- dans la liste sont indiquées des dépendances ; certaines apps nécessitent la présence d'autres apps. Cependant pas de craintes, si vous oubliez une dépendance, Creme génèrera une erreur assez claire à ce sujet.
Choix avant l'installation
Si vous n'avez pas encore créé la base de données, vous pouvez juste commenter/décommenter les noms des apps optionnelles, avant de faire les étapes des chapitres précédants (migrate, creme_populate, generatemedia).
Ajouter des apps après l'installation
Si vous souhaitez ajouter des apps après installation (ex: après plusieurs jours/mois d'utilisation un besoin apparait), décommentez les apps voulues (toujours en respectant les dépedances -- ex: si vous voulez "events", "opportunities" doit aussi être décommenté), puis lancez les même commandes que pour l'installation initiale: migrate, creme_populate, generatemedia.
(en effet il faut bien créer les nouvelles tables, les peupler, et aussi installer le nouveau JavaScript/CSS/...)
Désinstaller une app après l'installation
C'est une opération un peu délicate, car des données relatives à l'app que vous voulez désinstaller peuvent exister en base, et être reliées à des données qui elles ne doivent pas être supprimées (car relatives à des apps que vous garder), tout en gardant un système cohérent... Donc :
- privilégiez les apps pour lesquelles vous n'avez pas créé de données (typiquement aucune fiche).
- faites une backup avant.
La désinstallation d'une app se fait gràce à une commande, "creme_uninstall". Notez qu'il faut désinstaller une app à la fois (c'est déjà assez délicat comme ça...) ; si vous voulez désinstaller plusieurs apps, alors appliquez la méthode de désinstallation plusieurs fois, en respectant là encore les dépendances (ex: pour désinstaller "events" et "opportunities", faites le dans cet ordre, pour qu'à aucun moment une app n'ait pas ses dépendances installées). L'app que vous désinsttallez doit être présente dans votre INSTALLED_CREME_APPS (copiez cette variable dans votre local_settings.py si ce n'est pas déjà le cas, comme vu avant).
Si tout s'est bien déroulé, la commande vous demandera une fois finie de mettre en commentaire l'app dans votre INSTALLED_CREME_APPS.
Lancement du serveur
Une fois cela fait il ne nous reste plus qu'à lancer le serveur de test en faisant :
Vous pouvez maintenant vous connecter sur http://localhost:8000 pour voir que votre Crème fonctionne. La commande 'creme_populate' vous a indiqué qu'elle a créé un utilisateur "root" (mot de passe "root") ; utilisez cet utilisateur pour vous connecter. Vous êtes très vivement encouragé à changer immédiatement le mot de passe (dans le menu en haut > icône rouage > Utilisateurs).
Mais, et je vais le répéter, ce serveur de développement n'est pas fait pour être utiliser dans un contexte de production. Par exemple, pour mettre en production avec Apache et mod_wsgi, vous pouvez suivre cet autre billet: https://www.cremecrm.com/forum/showthread.php?tid=110
Lancement du gestionnaire de jobs
Depuis Creme1.7 certaines fonctionnalités (import des fichiers CSV/XLS, envoi des campagnes d'e-mails...) sont effectuées par des jobs tournant en parallèle du serveur Web. Ces jobs sont gérés par un gestionnaire qui s'occupent de créer ces processus lorsque c'est nécessaire.
Ce gestionnaire doit être lancé à part, et tourner en permanence ; si ce n'est pas le cas, la majorité de Creme fonctionnera parfaitement, mais pas les fonctionnalités basées sur les jobs. Si vous allez sur la liste des jobs (menu > Outils > Jobs) un message d'erreur vous indiquera si le gestionnaire est injoignable. Pour lancer le gestionnaire :
Mise à jour
Il est évidemment conseillé de régulièrement faire des sauvegarde de votre base de données, ainsi que des fichiers télé-versés dans "media/upload/" ; c'est d'autant plus vrai avant une mise-à-jour.
Vous pouvez mettre à jour votre virtualenv avec la commande suivante (ce qui installera les versions mineures des bibliothèques corrigeant bugs et autres failles) (adaptez avec le fichier requirements utilisé auparavant suivant votre SGBD):
Plus tard lorsque sortiront des versions de corrections pour Creme2.1, vous pourrez mettre à jour les sources avec
Le fichier CHANGELOG.TXT contient les nouveautés, ainsi que des notes sur les commandes. Dans le doute vous pouvez toujours mettre à jour la base de données avec "python manage migrate" (au pire la commande ne fera rien) et ré-générer les assets statiques comme au dessus ("python manage generatemedia").
- section "Choix des apps installées" ajoutée.
Édition du 10 juin 2020:
- l'URL du dépôt de source a été mise à jour suite au passage à github.
- une section "Mise à jour" a été ajoutée.
Édition du 19 février 2021:
- correction de quelques typo.
Introduction
Il s'agira ici d'installer Creme 2.1 soit depuis zéro, soit depuis une installation de Creme2.0 (notez que vous ne devriez migrer que d'une version à la fois -- donc si vous êtes en 1.8, vous devez migrer vers 2.0 avant de pouvoir migrer vers 2.1 par exemple).
Ce tutoriel d'installation parle des plateformes suivantes :
- GNU/Linux en se concentrant sur Debian (version 9 surtout ; pour la version 10 des corrections sont sûrement nécessaires) & Ubuntu ; lorsque des noms de paquets sont donnés, ce sont les noms dans ces 2 distributions, et il vous faudra chercher les équivalents sur votre propre distribution (n'hésitez pas pas à nous indiquer si vous avez installé sur une autre distribution avec d'autres noms afin que nous puissions améliorer ce tutoriel).
- Windows ; attention l'installation sous Windows est un peu plus complexe à cause du manque par défaut d'un gestionnaire de paquets. En plus ce n'est pas la plateforme la plus testée (mais si vous avez des problèmes/retours/patches vous pouvez en parler dans les commentaires notamment)
Le code de Creme ne faisant pas spécialement de "linuxeries", l'installer sur d'autres Unix (comme FreeBSD ou MacOSX) ne devrait pas dans l'absolu poser de souci particulier. Il nous est cependant difficile pour le moment de vous indiquer une marche à suivre précise n'utilisant pas (encore) ces systèmes. Là encore tout retour de personnes ayant essayé est le bienvenu.
Pour ce tutoriel d'installation de Crème CRM on va faire les choses du mieux possible. On va donc installer des choses qui pourraient vous sembler inutiles mais qui à terme permettront d'avoir une installation pérenne et qui ne rentrera pas en collision avec d'autres logiciels que vous pourriez vouloir installer.
Ce tutoriel vous permet d'installer tout le nécessaire pour faire fonctionner Crème avec le serveur de développement intégré dans Django. Le serveur de développement n'est pas une façon pérenne de faire fonctionner une application Django. Mais c'est un moyen simple de vérifier que tout fonctionne et vous pouvez faire quelques tests avec pour vérifier que Crème vous convient. Le tutoriel vous permettant d'utiliser Apache avec Crème (plus compliqué à faire fonctionner, mais c'est une façon pérenne de faire les choses) est le sujet d'un autre billet indiqué à la fin.
Une remarque très importante : si l'utilisation du serveur de développement est déconseillé pour une utilisation sur du long terme dans le cadre d'une machine personnelle, elle est par contre totalement interdite dans le cadre d'un hébergement sur un serveur. Si vous comptez installer Crème tout de suite sur un serveur, il ne faut pas, pas une seule seconde, utiliser le serveur de développement. En effet celui-ci est fait pour le test et rien d'autre. Il n'est pas prévu, ni en terme de performance ni en terme de sécurité, pour être utilisé dans un vrai contexte de production.
Avant propos
Notre objectif est d'installer & configurer un environnement Virtualenv. Virtualenv vous permet en effet d'avoir plusieurs environnements virtuels Python. L’intérêt est de pouvoir cloisonner les dépendances par projet. Vous êtes ainsi sûr que votre Crème n’arrêtera pas de fonctionner juste parce que vous avez dû mettre à jour une librairie Python pour pouvoir installer un autre logiciel. On ne va pas se contenter d'installer Virtualenv et on va installer aussi Virtualenvwrapper qui est une surcouche à Virtualenv et qui vous simplifiera les choses.
À propos des migrations : nous allons installer Creme 2.1 en parallèle de votre installation de Creme 2.0, en dupliquant les données. Ainsi en cas de gros problèmes vous pourrez revenir à votre installation précédente, que nous n'aurons pas détruite ; les éventuelles nouvelles données rentrées dans Creme 2.1 seront évidemment absentes de votre vieille installation, mais il s'agit ici plutôt de détecter les gros dysfonctionnements que vous auriez immédiatement.
Installation de Python
Pour commencer, il vous faut avoir Python 3 sur votre système (notez bien que Creme 2.1 ne fonctionnera pas avec Python 2 -- python 2.7 étant la dernière version de la branche 2 et est obsolète depuis le 1er Janvier 2020) ainsi que l'installeur 'pip' qui permet de télécharger & installer des paquets python.
Sous Windows :
Il faut vous rendre ici : https://www.python.org/downloads/windows/
L'installeur pour Windows contient l'interpréteur Python ainsi que 'pip'.
Note: il est important que vous partiez d'une installation vide de Python ; si vous avez déjà des paquets externes pour Python qui ne sont pas installés dans un Virtual Env, ces derniers prendront le pas sur les paquets du Virtual Env (et donc de mauvaises versions de paquets pourront être utilisées empêchant Creme de fonctionner) (ce problème étant spécifique à Windows).
Sous Linux :
Utilisez le gestionnaire de paquet de votre distribution ; si vous êtes sous Debian ou Ubuntu il vous suffit de faire :
Code :
sudo apt-get install python3
sudo apt-get install python-setuptools
sudo apt-get install python-pip
Installation des logiciels externes
En plus de Python il va vous falloir installer :
- Un serveur web compatible avec Python. Il y a le choix mais le grand classique reste Apache (version 2.4 actuellement). Comme indiqué plus haut vous pouvez aussi dans un premier temps utiliser le serveur de développement (inclus avec Django) avant de passer à un serveur de production comme Apache ou NginX.
- Un serveur de base de données: MySQL (5.7 ou plus) ou PostGreSQL (9.5 ou plus) ; dans un premier temps vous pouvez aussi tester avec une base SQLite (rien besoin d'installer c'est fourni avec Python).
- Redis ; ça fonctionne avec des versions anciennes (3.X) ou récentes (4.X +) donc cela ne devrait pas être un problème (préférez les versions plus récentes évidemment): https://redis.io/download
- Java 1.4 ou plus (on peut techniquement s'en passer si on désactive la minification de JavaScript/CSS, mais ça ne devrait pas être une dépendance compliqué à installer).
- Un client Mercurial (sous Windows TortoiseHg est très bien) pour récupérer les sources de Creme.
Sous Windows, wampserver vous facilitera sûrement la vie si vous comptez installer Apache et MySQL.
Sous Linux, vérifiez que vous avez les paquets suivants (ce sont les noms sous Ubuntu ; ils peuvent être différents sous une autre distribution évidemment) :
- mercurial
- git
- mysql_config (si vous utilisez MySQL -- n'existe plus et n'est plus nécessaire sous les versions récentes d'Ubuntu)
- mysql-client (si vous utilisez MySQL)
- mysql-server (si vous utilisez MySQL)
- postgresql (si vous utilisez PostGreSQL)
- postgresql-client-common (si vous utilisez PostGreSQL)
- redis-server
- default-jre
- graphviz
- language-pack-fr
Si vous comptez exporter des factures/devis en PDF, il vous faudra aussi Latex ; notez que c'est juste nécessaire exporter les factures en PDF, et que vous pouvez quand même vous servir de la partie facturation de Creme sans ça.
Le site contient bien de quoi installer pour Windows, mais ce n'est pas forcément facile d'avoir tout les modules Latex qu'il faut ; une prochaine version de Creme devrait proposer d'autres backends ne nécessitant que python ce qui simplifiera tout ça
Sous Ubuntu18.04 voici la liste des paquets nécessaire pour exporter correctement le template de base :
- texlive-latex-recommended
- texlive-fonts-extra
- texlive-lang-french
- texlive-latex-extra
(Linux) Installation des bibliothèques "système"
Pour pouvoir installer certains paquets dans votre environnement Python, il vous faudra certaines bibliothèques de développement afin de pouvoir compiler certains paquets.
Avant d'aller plus loin, il faut que vous vérifiez que les packages suivants sont bien installés, sinon, installez les :
- python3-dev
- libmysqlclient-dev (si vous utilisez MySQL)
- libpq-dev (si vous utilisez PostGreSQL)
- libxslt1-dev
- libjpeg-dev (et potentiellement les autres bibliothèques de gestion d'images selon vos besoins, comme libpng*-dev)
- libgraphviz-dev (ce paquet s'appelle "graphviz-dev " avec Ubuntu 16.04)
Installation de l'environnement virtuel
Ensuite, vous allez installer Virtualenvwrapper qui installera automatiquement Virtualenv en même temps.
Pour cela il vous suffit de taper :
Code :
sudo pip install virtualenvwrapper
Sous Windows, installez aussi la version Windows de virtualenvwrapper :
Code :
sudo pip install virtualenvwrapper-win
Nous allons va pouvoir créer le Virtualenv pour Crème.
À propos des migrations : créez un nouveau Virtualenv pour Creme 2.1, et gardez donc intact celui de de votre Creme 2.0.
Il reste une dernière petite config à faire, à savoir indiquer où vous allez stocker vos différents Virtualenv (Note: Ubuntu 18.04 fait cette partie toute seule et vous pouvez l'ignorer -- les autres systèmes en ont besoin en revanche). Je vais partir du principe que vous utilisez le répertoire Envs à la racine de votre home. Il va falloir que dans le fichier de configuration de votre shell (.bashrc si vous utilisez le bash) vous configuriez la variable WORKON_HOME. Cela se fait de la manière suivante (pour bash) :
Code :
export WORKON_HOME=~/Envs
Une fois cela fait et après avoir rechargé votre configuration, vous pouvez créer votre Virtualenv en tapant la commande :
Code :
mkvirtualenv creme_2_1 -p chemin/vers/python3
Par exemple, sous Ubuntu 18.04, le chemin vers python 3 est "/usr/bin/python3.6".
Si "mkvirtualenv" n'existe pas (Debian 10):
Ajoutez au fichier .bashrc la ligne suivante
Code :
source /usr/local/bin/virtualenvwrapper.sh
Une fois que votre Virtualenv est créé, il faut l'activer pour votre console. Vous allez en effet installer de nouveaux packages Python et faire des commandes Django et tout doit se faire dans votre Virtualenv. L'activation d'un Virtualenv se fait avec la commande "workon". Si vous la lancez sans argument elle vous donnera la liste des Virtualenv possibles. Avec un nom de Virtualenv, elle l'active.
Ici, vous devez donc taper
Code :
workon creme_2_1
Il y a d'autre commandes intéressantes dans Virtualenvwrapper. Vous les trouverez dans le man. Une commande qui vous sera utile est la commande "deactivate" qui permet de sortir d'un Virtualenv pour revenir à votre environnement système classique.
Maintenant que vous avez activé votre Virtualenv, il vous faut récupérer Crème. Pour cela il suffit d'utiliser mercurial git. Tapez simplement à l'endroit où vous voulez déposer le code source de Crème :
Code :
git clone https://github.com/HybirdCorp/creme_crm-2.1.git
Les sources de Crème contiennent (dans le répertoire 'creme/)' des fichier vont servir à installer de manière automatique les dépendances selon vos besoins :
- 'requirements.txt' pour une installation avec une base de données SQLite.
- 'requirements-mysql.txt' pour une installation avec une base de données MySQL.
- 'requirements-pgsql.txt' pour une installation avec une base de données PostgreSQL.
(les avantages et inconvénients des différents type de base sont expliqués plus bas si vous avez des doutes)
Si vous souhaitez utiliser SQLite, il vous suffit donc de taper (adaptez le chemin suivant l'endroit d'où vous vous trouvez)
Code :
pip install -r creme/requirements.txt
alors que pour PostgreSQL ça serait :
Code :
pip install -r creme/requirements-pgsql.txt
Notes sur MariaDB
Si vous avez installé MariaDB plutôt que MySQL (paquet "libmariadbclient-dev" sur Debian10), et que vous avez une erreur " /bin/sh: 1: mysql_config: not found", créez le lien symbolique suivant :
Code :
ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
Notes pour Windows:
- Vous devriez installer aussi le paquet "pywin32":
pip install pywin32
- Certains paquets (comme mysqlclient ou graphviz) peuvent être retords à s'installer, et le site suivant, qui contient des paquets pré-compilés, pourrait grandement vous aider: https://www.lfd.uci.edu/~gohlke/pythonlibs/
Copie des fichiers uploadés par les utilisateurs
Cette partie ne concerne que les migrations depuis Creme 2.0 (passez à la suite si vous installez depuis 0).
Dans votre installation de Creme 2.0, allez dans le répertoire creme/media/upload. Si vous avez utilisé des Documents dans Creme, ou bien exporté des factures/Devis en PDF, vous devriez avoir des sous-répertoires ("documents", "billing" etc...). Si c'est bien le cas, copier ces répertoires (et leur contenu évidemment) dans le répertoire creme/media/upload de votre installation de Creme 2.1
Note: il est important de le faire avant la commande "migrate" (voir plus bas), car celle-ci en plus de modifier la base de données SQL pourrait tout à fait modifier les fichiers uploadés (leur nom en interne ou leur emplacement, pas leur contenu évidemment) ; ce n'est pas le cas dans la migration 2.0 vers 2.1, mais c'est déjà arrivé (migration 1.6 vers 1.7). Aussi nous préconisons cette approche.
Configuration de la base de données
Django utilise un système de configuration qui utilise un fichier python stockant des valeurs ; ce fichier s'appelle de base 'settings.py' (vous le trouverez dans le répertoire 'creme/'). Mais afin de ne pas modifier un fichier "appartenant " à Creme (ce qui vous obligerez à gérer des conflits lors de mise-à-jour du code de Creme), nous allons mettre la configuration spécifique à votre serveur dans un fichier qui vous appartient.
Rendez-vous dans le répertoire 'creme/' et créez un fichier de configuration propre à votre machine: local_settings.py
(attention le nom est important, puisque settings.py importe explicitement ce fichier s'il existe).
À propos des migrations : copiez le fichier local_settings.py de votre vieille installation plutôt que d'en créer un depuis zéro. Il se pourrait que certaines variables soient devenues obsolètes (nous parlons ici de variables un peu pointues, pas les basiques vues ici) ; dans ce cas des messages d'erreurs vous l'indiqueront dans votre terminal au lancement du serveur.
Attention: Comme nous l'avons dit en introduction, nous allons dupliquer la base de données plutôt que d'en créer une nouvelle, donc n'oublier pas de mettre le nom de votre nouvelle base dans ce fichier local_settings.py copié. En effet comme il contient le nom de votre ancienne base, c'est celle-ci qui serait migrée (mas de panique si vous avez bien dupliqué au préalable, au pire votre ancienne base n'est pas perdu elle a juste un nouveau nom).
Pour le moment, Il doit contenir les lignes suivantes (que nous allons compléter par la suite) :
Code :
# -*- coding: utf-8 -*-
DATABASES = {
'default': {
'ENGINE': '',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': '', # Une chaîne vide pour le localhost.
'PORT': '', # Une chaîne vide pour le port par défaut.
},
}
SECRET_KEY = 'valeur_temporaire'
Avant de passer au déploiement de Crème proprement dit, on va devoir configurer la base de données. Creme est testé avec trois systèmes de gestion de base de données: SQLite, MySQL & PostgreSQL. Django permet aussi d'utiliser une base Oracle, mais nous n'avons jamais eu l'occasion de tester une telle configuration (mais pourquoi utiliser un SGBDR propriétaire quand l'offre libre est aussi bonne ?). Il existe aussi des backends pour d'autres SGBDR (firebird, sqlserver ...) qui sont distribués à part de Django ; là encore nous ne les avons pas testé, et ne pouvons garantir leur fonctionnement (mais si vous avez essayé, vos retours sont évidemment les bienvenus, ne serait-ce que par curiosité technique).
SQLite
SQLite est surtout utile si vous êtes un développeur, afin de tester rapidement votre travail. C'est aussi envisageable si vous comptez utiliser Creme
en tant qu'application monoposte et avec peu de données (c'est sûrement une mauvaise idée pour des dizaines de milliers de fiches). Si vous n'êtes pas dans ces 2 cas, nous vous déconseillons vivement une telle configuration.
Si vous choisissez SQLite, la configuration est très simple (pas d'utilisateur ou de mot de passe) ; éditez la variable DATABASES de votre local_settings.py ainsi :
Code :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/chemin/absolu/vers/un/fichier.db',
'HOST': '',
'PORT': '',
},
}
Vous devez évidemment mettre une chemin valide en tant que NAME (le fichier sera créé s'il n'existe pas, mais faites attention que Creme ait bien les permissions d'écrire dans le répertoire choisi).
À propos des migrations : pour dupliquer une base SQLite il suffit de copier l'ancien fichier.
MySQL
MySQL est un choix classique pour un serveur de production ; il est très répandu et facile à configurer. En revanche, il n'est pas toujours possible de le configurer aussi finement qu'on le voudrait, et a tendance à voir ses performances varier étrangement au grès des versions (la plupart du temps dans le bon sens, mais pas toujours) . C'est donc un bon choix si vous le connaissez déjà, et que vous ne visez pas des volumes importants de données (pour quelques centaines de milliers de fiches ça devrait être satisfaisant -- ça dépend de votre matériel évidemment).
Pour que Crème puisse utiliser MySQL, il faut créer une base de données et un utilisateur qui a les droits sur celle-ci. Vous pouvez bien entendu le faire en graphique grâce à un outil d'administration de BD.
Voici comment le faire en console. Notez qu'en fonction de la version de MySQL les commandes peuvent changer ; les instructions suivantes fonctionnent avec MySQL 5.7 (des Ubuntu LTS 16.04 & 18.04) ; référez vous à la documentation de votre version de MySQL les commandes ne fonctionnent pas.
À propos des migrations : il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. Par exemple dans PHPMyadmin, si vous allez sur votre ancienne base, il y a un onglet "Opérations" qui contient une section "Copier la base de données vers" (qui permet de conserver les privilèges -- normalement la case pour les conserver est cochée par défaut). N'oubliez pas plus bas de mettre le nouveau nom dans la variable 'NAME'.
D'abord logguez vous dans MySQL avec la commande suivante :
Code :
mysql -u root -p
Puis passez sur la base de configuration avec la commande :
Code :
use mysql;
Ajoutez maintenant votre utilisateur (en remplaçant les valeurs d'exemple par vos propres valeurs) avec la commande :
Code :
CREATE USER 'cremeuser'@'localhost' IDENTIFIED BY '34jkfue1dioaA';
Puis nous créons la base de données :
Code :
CREATE DATABASE bdcremecrm;
et enfin nous donnons à votre l'utilisateur toutes les permissions sur la base de données de Creme :
Code :
GRANT ALL PRIVILEGES ON bdcremecrm.* TO 'cremeuser'@'localhost' WITH GRANT OPTION;
Éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez si nécessaire remplacer les noms de la base, de l'utilisateur et son mot de passe par les valeurs que vous avez défini précédemment) :
Code :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bdcremecrm',
'USER': 'cremeuser',
'PASSWORD': '34jkfue1dioaA',
'HOST': '', # Une chaîne vide pour le localhost.
'PORT': '', # Une chaîne vide pour le port par défaut.
},
PostgreSQL
PostgreSQL est sûrement le meilleur choix pour les volumes de données importants ; non seulement ses performances sont excellentes, mais c'est aussi le SGBDR le plus rigoureux en terme de cohérence des données.
Les instructions du début de ce tutoriel étaient plutôt faites pour un déploiement avec MySQL ; aussi il va falloir installer des paquets supplémentaires si vous souhaitez utiliser PostgreSQL.
Comme pour MySQL, il vous faut maintenant créer un utilisateur dédié à Creme, ainsi qu'une base sur lequel l'utilisateur a tous les droits. Là encore c'est possible en console comme en graphique (en graphique, le programme "pgAdmin III" fait un très bon travail).
À propos des migrations : comme déjà dit, il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. N'oubliez pas ci-dessous de mettre le nouveau nom dans la variable 'NAME'.
Lorsque c'est fait, éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez remplacer les noms de la base de l'utilisateur et son mot de passe par les valeurs que vous avez choisies juste avant) :
Code :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'nom_de_la_base',
'USER': 'nom_de_l_utilisateur',
'PASSWORD': 'm0t_de_p4$$',
'HOST': '', # Une chaîne vide pour le localhost.
'PORT': '', # Une chaîne vide pour le port par défaut.
},
Remplissage de la base de données
Vous devez revenir dans le répertoire 'cremecrm/' (et ne pas rester dans le répertoire 'creme/') ; il vous suffit de taper :
Code :
cd ..
Avec la commande suivante, vous allez générer votre clé secrète ; il faudra mettre la valeur retournée dans votre local_settings.py, dans la variable SECRET_KEY (entre les '', à la place de "valeur_temporaire"; exemple: SECRET_KEY = 'abcd123'):
Code :
python manage.py build_secret_key
Avec la commande suivante, on va créer les tables de la base :
Code :
python manage.py migrate
Puis on remplit la base avec les données initiales (utilisateur administrateur, société initiale, configuration par défaut etc…) :
Code :
python manage.py creme_populate
À propos des migrations :
Même si ce n'est pas indispensable, il peut être bien de supprimer les sessions existantes (elles peuvent contenir des informations obsolètes) :
Code :
python manage.py shell
>> from django.contrib.sessions.models import Session
>> Session.objects.all().delete()
Génération des bundles d'assets statiques
Il s'agit de créer des fichiers optimisés pour le CSS et le JavaScript, ainsi que des images avec des noms pensés pour être mises en cache intelligemment :
Code :
python manage.py generatemedia
Voici la sortie que vous devriez avoir :
Code :
Generating l10n.js with variation {'language': 'en'}
Generating l10n.js with variation {'language': 'fr'}
Generating lib.js with variation {}
Generating main.js with variation {}
Generating testlib.js with variation {}
Generating testcore.js with variation {}
Generating icecreammain.css with variation {}
Generating chantillymain.css with variation {}
Choix des apps installées
Pour des raisons de simplicité, nous avons choisi d'installer Creme avec sa liste d'apps par défaut, qui couvre la plupart des besoins courants. Sont écartées de cette liste l'app "mobile" pour proposer en plus un ensembe de vues plus adapatées aux smartphones, et "polls" qui permet de faire des questionnaires/sondages internes.
Creme étant modulaire, vous pouvez choisir plus finement les apps installées ; même si pour une première installation, vous devriez sûrement garder la liste de base (vous pouvez passer au chapitre suivant). Pour avoir une liste personnalisée, copiez la variable INSTALLED_CREME_APPS de settings.py dans votre fichier local_settings.py ; c'est cette liste copiée que vous modifierez (évidemment ne modifiez jamais settings.py).
2 points importants :
- vous ne pouvez enlever (en pratique mettez plutôt en commentaire avec un '#' en début de ligne) que les apps dans la section CREME OPTIONAL APPS, qui sont optionnelles comme l'indique le nom.
- dans la liste sont indiquées des dépendances ; certaines apps nécessitent la présence d'autres apps. Cependant pas de craintes, si vous oubliez une dépendance, Creme génèrera une erreur assez claire à ce sujet.
Choix avant l'installation
Si vous n'avez pas encore créé la base de données, vous pouvez juste commenter/décommenter les noms des apps optionnelles, avant de faire les étapes des chapitres précédants (migrate, creme_populate, generatemedia).
Ajouter des apps après l'installation
Si vous souhaitez ajouter des apps après installation (ex: après plusieurs jours/mois d'utilisation un besoin apparait), décommentez les apps voulues (toujours en respectant les dépedances -- ex: si vous voulez "events", "opportunities" doit aussi être décommenté), puis lancez les même commandes que pour l'installation initiale: migrate, creme_populate, generatemedia.
(en effet il faut bien créer les nouvelles tables, les peupler, et aussi installer le nouveau JavaScript/CSS/...)
Désinstaller une app après l'installation
C'est une opération un peu délicate, car des données relatives à l'app que vous voulez désinstaller peuvent exister en base, et être reliées à des données qui elles ne doivent pas être supprimées (car relatives à des apps que vous garder), tout en gardant un système cohérent... Donc :
- privilégiez les apps pour lesquelles vous n'avez pas créé de données (typiquement aucune fiche).
- faites une backup avant.
La désinstallation d'une app se fait gràce à une commande, "creme_uninstall". Notez qu'il faut désinstaller une app à la fois (c'est déjà assez délicat comme ça...) ; si vous voulez désinstaller plusieurs apps, alors appliquez la méthode de désinstallation plusieurs fois, en respectant là encore les dépendances (ex: pour désinstaller "events" et "opportunities", faites le dans cet ordre, pour qu'à aucun moment une app n'ait pas ses dépendances installées). L'app que vous désinsttallez doit être présente dans votre INSTALLED_CREME_APPS (copiez cette variable dans votre local_settings.py si ce n'est pas déjà le cas, comme vu avant).
Code :
python manage.py creme_uninstall app_a_desinstaller
Si tout s'est bien déroulé, la commande vous demandera une fois finie de mettre en commentaire l'app dans votre INSTALLED_CREME_APPS.
Lancement du serveur
Une fois cela fait il ne nous reste plus qu'à lancer le serveur de test en faisant :
Code :
python manage.py runserver
Vous pouvez maintenant vous connecter sur http://localhost:8000 pour voir que votre Crème fonctionne. La commande 'creme_populate' vous a indiqué qu'elle a créé un utilisateur "root" (mot de passe "root") ; utilisez cet utilisateur pour vous connecter. Vous êtes très vivement encouragé à changer immédiatement le mot de passe (dans le menu en haut > icône rouage > Utilisateurs).
Mais, et je vais le répéter, ce serveur de développement n'est pas fait pour être utiliser dans un contexte de production. Par exemple, pour mettre en production avec Apache et mod_wsgi, vous pouvez suivre cet autre billet: https://www.cremecrm.com/forum/showthread.php?tid=110
Lancement du gestionnaire de jobs
Depuis Creme1.7 certaines fonctionnalités (import des fichiers CSV/XLS, envoi des campagnes d'e-mails...) sont effectuées par des jobs tournant en parallèle du serveur Web. Ces jobs sont gérés par un gestionnaire qui s'occupent de créer ces processus lorsque c'est nécessaire.
Ce gestionnaire doit être lancé à part, et tourner en permanence ; si ce n'est pas le cas, la majorité de Creme fonctionnera parfaitement, mais pas les fonctionnalités basées sur les jobs. Si vous allez sur la liste des jobs (menu > Outils > Jobs) un message d'erreur vous indiquera si le gestionnaire est injoignable. Pour lancer le gestionnaire :
Code :
python manage.py creme_job_manager
Mise à jour
Il est évidemment conseillé de régulièrement faire des sauvegarde de votre base de données, ainsi que des fichiers télé-versés dans "media/upload/" ; c'est d'autant plus vrai avant une mise-à-jour.
Vous pouvez mettre à jour votre virtualenv avec la commande suivante (ce qui installera les versions mineures des bibliothèques corrigeant bugs et autres failles) (adaptez avec le fichier requirements utilisé auparavant suivant votre SGBD):
Code :
pip install -U -r requirements.txt
Plus tard lorsque sortiront des versions de corrections pour Creme2.1, vous pourrez mettre à jour les sources avec
Code :
git pull
Le fichier CHANGELOG.TXT contient les nouveautés, ainsi que des notes sur les commandes. Dans le doute vous pouvez toujours mettre à jour la base de données avec "python manage migrate" (au pire la commande ne fera rien) et ré-générer les assets statiques comme au dessus ("python manage generatemedia").