Mise à jour

Danger

Si vous mettez à jour vers la version 1.0, des étapes supplémentaires sont requises, voir Mettre à jour vers la version 1.0.x.

Avertissement

Avant de procéder à la mise à jour, faire une sauvegarde de l'ensemble des données :

Avertissement

Les versions publiées ne suivent pas la gestion sémantique de version. Toute version peut contenir des changements non rétro-compatibles.

Note

Selon le système d'exploitation et la version de Python installée, des dépendances supplémentaires peuvent être requises, telles que gcc ou libgdal-dev.

A partir de PyPI

Avertissement

Seulement si FitTrackee a été installé initialement à partir de PyPI
$ pip install -U fittrackee
  • Mettre à jour les variables d'environnements si nécessaire et les activer

$ nano .env
$ source .env
  • Mettre à jour la base de données si nécessaire (voir le journal des changements pour les migrations) :

$ ftcli db upgrade
  • Redémarrer l'application et les workers de la file d'attente des tâches (si l'envoi des courriels est activé).

A partir des sources

Avertissement

Seulement si FitTrackee a été installé initialement à partir des sources.

Environnement de production

  • Arrêter l'application

  • Changer pour le répertoire dans lequel FitTrackee est localisé

  • Télécharger la dernière version (à ce jour, la version v1.1.0) et écraser les fichiers existants :

$ wget https://github.com/SamR1/FitTrackee/archive/v1.1.0.tar.gz
$ tar -xzf v1.1.0.tar.gz
$ cp -R FitTrackee-1.1.0/* FitTrackee/
$ cd FitTrackee
$ make install-python
  • Mettre à jour la base de données si nécessaire (voir le journal des changements pour les migrations) :

$ make upgrade-db
  • Redémarrer le serveur et les workers de Dramatiq :

$ make run

Note

Si l'envoi des courriels est désactivé : $ make run-server

Environnements de développement

  • Arrêter l'application et récupérer les derniers changements du dépôt :

$ git pull
$ make install-dev
  • Mettre à jour la base de données si nécessaire (voir le journal des changements pour les migrations) :

$ make upgrade-db
  • Redémarrer le serveur :

$ make serve
  • Démarrer les workers de Dramatiq :

$ make run-workers

Mettre à jour vers une version 1.0.x

Note

Ce paragraphe décrit la mise à jour à partir d'une version inférieure à la 1.0.0 vers une version 1.0.x.

La version 1.0.0 introduit des changements majeurs dans le traitement des fichiers des séances afin d'améliorer les performances et faciliter l'implémentation des futures fonctionnalités:

  • les données affichées dans le graphique de la séance sont maintenant stockées en base de données,

  • ainsi que les géométries des segments.

Ce dernier changement nécessite l'extension PostGIS, pour ajouter les fonctionnalitées géospatiales à la base de données PostgreSQL.

Instructions de mise à jour

Avertissement

Ces actions doivent être effectuées avant la mise à niveau vers la version 1.1.0.

Avertissement

Avant de procéder à la mise à jour, faire une sauvegarde de l'ensemble des données :

Note

Selon le système d'exploitation et la version de Python installée, des dépendances supplémentaires peuvent être requises, telles que gcc ou libgdal-dev.

A partir PyPI ou des sources

PostGIS doit être installé sur le système d'exploitation. Vous pouvez trouver les instructions pour votre système d'exploitation dans la documentation de PostGIS.

Voici les instructions pour une installation sur ArchLinux avec yay (à adapter selon le système d'exploitation) :

  • arrêter l'application et les workers

  • installer PostGIS sur le serveur de la base de données

    $ yay postgis
    
  • ajouter l'extension PostGIS à la base de données

    $ psql -U <SUPER_USER> -d <FITTRACKEE_DATABASE_NAME> -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
    
  • si le serveur exécutant l'application et différent de celui de la base de données, installer la librairie gdal le serveur exécutant l'application (GDAL est installé avec PostGIS)

    $ yay gdal
    
  • mettre à jour fittrackee (voir les instructions pour la mise à jour)

  • exécuter les migrations de base de données

  • démarrer l'application et les workers

Avec Docker

  • arrêter l'application, les workers et la base de données

    $ docker compose stop
    
  • remplacer l'image de la base de données postgres dans le fichier docker-compose.yml par postgis/postgis (en gardant la même version de PostgreSQL), par exemple :

    -   image: postgres:17-alpine
    +   image: postgis/postgis:17-3.5-alpine
    

Avertissement

Il n'y a pas encore d'image officielle de PostGIS sur les plateformes ARM, cf. ticket sur GitHub.
La solution est de générer l'image PostGIS localement.
  • démarrer uniquement la base de données

    $ docker compose up fittrackee-db -d
    
  • ajouter l'extension PostGIS à la base de données

    $ docker compose exec fittrackee-db psql -U <SUPER_USER> -d <FITTRACKEE_DATABASE_NAME> -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
    CREATE EXTENSION
    
  • mettre à jour la version de l'image de fittrackee dans le fichier docker-compose.yml

  • redémarrer l'application, les migration devraient s'exécuter sans erreur

Mise à jour des séances

Une nouvelle option de l'interface de lignes de commande (--add-missing-geometry) permet de réactualiser toutes les séances sans géométries et données du graphique.

Après avoir mis à jour fittrackee, exécuter la commande suivante avec éventuellement d'autres options selon le nombre de séances à mettre à jour et les capacités du serveur, avant d'activer les fonctionnalités géospatiales.

Par exemple pour les 1000 premières séances créées avec un fichier :

$ ftcli workouts refresh --add-missing-geometry --per-page 1000 -v
Cette commande peut être ré-exécuter autant de fois que nécessaire, jusqu'à ce qu'il ne reste plus de séances à mettre à jour.
Une fois que toutes les séances ont été mises à jour, activer les fonctionnalités géospatiales sur l'interface en configurant la variable d'environnement ENABLE_GEOSPATIAL_FEATURES à True dans le fichier .env.

Important

La version 1.1.0 nécessite que toutes les séances soient mises à jour (l'option --add-missing-geometry est supprimée dans la version 1.1.0).