Skip to main content

Documentation Olfeo OEM

Gestion de la base de données

Mise à jour des bases de données

Pour la production, votre copie de la base de données doit rester à jour. Pour ce faire, nous fournissons une image Docker pour l'outil de mise à jour. Cette image est fournie sous forme de fichier tar.

Pour importer l’image dans votre instance Docker, utilisez les commandes suivantes :

$ gunzip updater-sdk-vxxx.tar.gz
$ docker image load -i updater-sdk-vxxx.tar

Vous pouvez ensuite exécuter le programme de mise à jour dans votre environnement Docker.

$ docker run --rm olfeo-oem-updater:v0.8.0 --version
nexus-updater version sdk/v0.8.0-beae5f24

Le programme de mise à jour doit avoir accès à votre base de données Redis et recevoir votre identifiant et votre mot de passe.

Vous pouvez aussi les fournir à l'aide d'arguments de ligne de commande, mais également à l'aide de variables d'environnement. Vous pouvez mélanger et assortir, par exemple :

$ docker run --rm olfeo-oem-updater:v0.8.0 -e "OLFEO_OEM_SDK_USERNAME=client" -e "OLFEO_OEM_SDK_PASSWORD=$password" --redis-dsn rediss://my-redis-instance.local/0 --update-url https://api.oem.olfeo.eu

Le processus va démarrer la mise à jour. Au début, le processus peut prendre un certain temps. La progression est enregistrée afin que le processus reprenne là où il s'est arrêté en cas d'arrêt.

Une fois la base de données à jour, le processus se termine. Vous pouvez alors exécuter à nouveau le processus de mise à jour à intervalles réguliers pour maintenir votre base de données à jour. Vous pouvez utiliser une tâche cron pour cela.

Instance unique

Assurez-vous de n'avoir qu'une seule instance du processus de mise à jour en cours d'exécution : avoir plusieurs instances ne le rendra pas plus rapide.

Personnalisation du préfixe de base de données

Il est possible de spécifier un préfixe personnalisé pour toutes les clés Redis gérées par le SDK. Cela permet de minimiser le risque de conflit lorsque la base de données Redis est partagée avec d'autres projets. Il permet également de gérer différentes versions de notre base de données en choisissant des préfixes différents pour chaque version

Cohérence du préfixe requise

All components of the SDK must be configured with the same prefix. This includes both the Database instance and the Updater process.

Bien qu'il soit courant de séparer le préfixe du reste de la clé à l'aide des deux points (:) caractère en rouge, nous n'imposons aucune contrainte quant à votre choix de préfixe. Vous pouvez ajouter un caractère deux-points à la fin si vous souhaitez suivre la convention. Par exemple, en utilisant od: en tant que préfixe.

Le préfixe de base de données personnalisé peut être utilisé avec :

Configuration de la base de données

Dans votre code d'initialisation, vous pouvez spécifier le préfixe à utiliser avec la fonction d'assistance comme suit :

import "gitlab.olfeo.tech/data-tools/nexus/sdk/database/redis"

...

func createDbInstance() {
   ...
   db, err := redis.NewDatabase(ctx, redisClient, redis.WithKeyPrefix("od:"))
You can define the key prefix during initialization using the appropriate helper function, like so:}
Configuration du processus de mise à jour

Le processus de mise à jour doit également connaître le préfixe que vous souhaitez utiliser. Vous pouvez l'ajouter en utilisant 2 méthodes différentes :

  • En tant que paramètre de ligne de commande supplémentaire :

    $ docker run --rm -e "OLFEO_OEM_SDK_USERNAME=client" -e "OLFEO_OEM_SDK_PASSWORD=$password" \
      olfeo-oem-updater:v1.1.0 --redis-dsn rediss://my-redis-instance.local/0 --redis-prefix od:
  • En tant que variable d'environnement :

    $ docker run --rm -e "OLFEO_OEM_SDK_USERNAME=client" -e "OLFEO_OEM_SDK_PASSWORD=$password" \
      -e "OLFEO_OEM_SDK_REDIS_PREFIX=od:" olfeo-oem-updater:v1.1.0 \
      --redis-dsn rediss://my-redis-instance.local/0
Outils OLFEO

Le outil olfeo binary permet d'inclure des données de domaine personnalisées dans la base de données, à des fins de test.

Lorsque vous utilisez un préfixe, celui-ci doit également être inclus dans la ligne de commande, comme suit :

$ olfeo-tool add-test-domain --redis-dsn rediss://my-redis-instance.local/0 --redis-prefix od: ...

Réinitialisation de la base de données

Cette section décrit comment redémarrer la base de données Redis locale, y compris les options permettant de réinitialiser l'intégralité de la base de données ou de cibler des parties spécifiques de l'ensemble de données.

Réinitialiser la base de données complète

Pour réinitialiser complètement la base de données et supprimer toutes les données stockées, utilisez la commande Redis suivante :

$ FLUSHDB

Cela démarrera la base de données à partir de zéro, en effaçant toutes les données existantes.

Réinitialiser une partie spécifique de l'ensemble de données

Si vous devez uniquement réinitialiser des parties spécifiques de la base de données, vous pouvez gérer de manière sélective les données associées à un état de synchronisation donné.

L'état du processus de synchronisation entre la base de données locale et le serveur API est stocké sous une clé spécifique dans la base de données Redis, identifiée comme : status. Pour obtenir l'état actuel, exécutez la commande suivante :

$ HGETALL status

Cette clé contient une carte qui associe les ID de type de données aux dernières dates de synchronisation. Chaque date indique la mise à jour la plus récente pour le type de données correspondant.

Le tableau ci-dessous décrit les types de données existants et leurs identifiants respectifs :

Tableau 1. Types de données et leurs identifiants

Type de données

Id

Domaine

d

Catégorie de domaine

c

Thème

t

Catégorie d'application

ca

Application

a

Domaine d'application

da

Plages d'IP d'applications

ia

Logo

l



L'outil  updater est là pour resynchroniser un type de données spécifique en effaçant la clé correspondante dans la carte des status .

Par exemple, pour resynchroniser toutes les applications, la commande suivante peut être utilisée :

$ HDEL status a