Mettre à jour vers la version 1.0.0

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

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

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 prochaine version nécessitera que toutes les séances soient mises à jour.