Maintenance
Cette section détaille les procédures d’exploitation courantes.
Cette section détaille les procédures d’exploitation courantes.
Un modèle de données n’est pas figé dans le temps, il peut évoluer et donc être mis à jour, que ce soit depuis le serveur ou sur un ou plusieurs clients.
A chaque modification du modèle de données sur le serveur, sa nouvelle version est propagée aux clients avec ses données “publiques” : chaque type de données est inclus, avec sa clé primaire, la liste de ses attributs et la liste de ses attributs secrets. Des événements consécutifs sont ensuite émis.
ou
ou
ou
ou
Il s’agit de la mise à jour du modèle de données la plus risquée, car il peut y avoir des liens entre les types de données, utilisant des clés primaires comme clés étrangères. Cela signifie que vous devrez mettre à jour tous les types de données en une fois, sans rien manquer.
Vous devriez vraiment envisager d’effectuer cette mise à jour dans un environnement de test avant de la faire en production, car si quelque chose échoue, vos clients pourraient être définitivement compromis.
Les attributs à utiliser comme nouvelle clé primaire doivent déjà exister dans votre modèle de données serveur, et leurs valeurs doivent déjà avoir été propagées et exister dans le cache des clients.
La nouvelle clé primaire DOIT exister dans chaque entrée de son type de données avant la mise à jour du modèle de données. Si la corbeille est activée sur certains de vos clients, le nouvel attribut de clé primaire peut être absent des entrées qui s’y trouvent.
La manière la plus sûre de gérer cela est d’ajouter l’attribut à votre modèle de données serveur et de retarder le changement de clé primaire d’au moins un jour + autant de jours que la valeur trashbin_retention la plus élevée de tous vos clients.
Si vous ne gérez pas cela de cette manière, le client purgera toutes les entrées en corbeille qui ne contiennent pas la valeur du ou des nouveaux attributs de clé primaire, comme si le délai trashbin_retention était échu.
Un modèle de données n’est pas figé dans le temps, il peut évoluer et donc être mis à jour, que ce soit depuis le serveur ou sur un ou plusieurs clients.
Chaque fois que le modèle de données est modifié sur un client, le client génère des événements locaux pour propager les modifications de données consécutives sur les cibles. Le client peut notifier des avertissements concernant le modèle de données si certains types de données ou attributs distants sont définis dans son modèle de données mais n’existent pas dans le schéma de données actuel reçu d’hermes-server.