Migration v3.0 -> v3.1 - nouvelle gestion des contenants

Cette documentation concerne les installations en auto-hébergement.

Les différentes étapes sont réalisées en ligne de commande via une connexion SSH sur le serveur. Les instructions sont écrites pour une instance ayant pour identifiant prod, c’est à adapter en fonction de votre installation. On présuppose que le paquet Debian a été utilisé.

Le passage à la version v3.1 a été notamment l’occasion d’une refonte de la gestion des contenants (voir le message annonçant les nouveaux développements).

Comme à chaque nouvelle mise à jour, la mise à niveau du schéma de données est effectuée automatiquement. Néanmoins dans le cas particulier de cette mise à jour importante, la migration effective de l’existant vers la nouvelle gestion des contenants n’est pas automatique.

Comme pour toute migration d’envergure, il est préférable de faire une sauvegarde de la base de données en amont. De plus s’il y a beaucoup de contenants dans la base de données (> 10 000 éléments), cette migration nécessite potentiellement une mise hors ligne du site pendant quelques dizaines de minutes.

Tout d’abord éteindre le service uwsgi (en renvoyant éventuellement vers une page de maintenance) :

systemctl stop uwsgi

Se rendre dans le répertoire correspondant à l’instance :

cd /srv/ishtar/prod

Cette migration est plus optimisée en désactivant le serveur de tâche de fond. Si celui-ci est activé sur votre instance, il est préférable de le désactiver (attention à bien mettre les doubles chevrons) :

echo "USE_BACKGROUND_TASK = False" >> local_settings.py

Ensuite on peut lancer la migration en elle-même. Cette migration prenant quelques temps, il est préférable de lancer la commande au sein d’un utilitaire tel que screen qui permet de se déconnecter tout en laissant la commande s’exécuter (et permet aussi de gérer une éventuelle déconnexion involontaire). Dans le répertoire de l’instance, la commande à lancer est :

python3 ./manage.py migrate_to_new_container_management

Une fois la migration finie, un fichier new_containers.csv est généré qui référence tous les nouveaux contenants créés. Ce fichier permet notamment d’identifier la génération éventuelle de doublons [1]. Suite à cette migration, il sera par ailleurs nécessaire de se rendre depuis Ishtar dans l’interface de fusion des contenants pour vérifier les éventuels doublons que cette migration aurait générés. Il reste enfin à relancer Ishtar :

# si on utilise le serveur de tâche de fond
sed -i '$ d' local_settings.py  # suppression de "USE_BACKGROUND_TASK = False" de local_settings
# relancement du service 
systemctl start uwsgi

  1. Les doublons sont liés au fonctionnement précédent des divisions, en saisie libre (cf. le message annonçant les nouveaux développements). ↩︎