Comment j'ai combiné les données du plugin Tempo pour Jira Server et Jira Cloud et les ai migrées vers Jira Cloud

Bonjour à tous!

Les plugins Tempo pour Atlassian Jira sont installés sur un grand nombre d'instances Jira dans le cloud et les serveurs. J'ai dû combiner les données du cloud et du serveur Jira et redéfinir les données combinées sur le cloud. En plus des données Jira standard, j'avais également besoin de combiner les données du plugin Tempo. Dans cet article, je vais vous expliquer comment j'ai effectué l'union et la migration des données Tempo.

Données de tempo que j'ai migrées:


  • Comptes Tempo (comptes)
  • Équipes de tempo (équipes)
  • Les valeurs des champs Compte et Équipe pour tous les ishui dans Jira
  • Journaux de travail

Le processus d'intégration et de migration:


J'ai pris deux Jira avec la configuration suivante: Jira Software 7.11.2 et Jira Service Desk 3.14.2. Ensuite, j'ai supprimé la sauvegarde de Jira Cloud et l'ai installée sur la première instance, puis j'ai supprimé la sauvegarde de Jira Server et l'ai installée sur la deuxième instance. Après cela, j'ai transféré les données de la deuxième instance à la première à l'aide du plug-in Configuration Manager (bien qu'il soit possible d'utiliser le plug-in Project Configurator ).

En conséquence, j'ai constaté qu'à la première instance, où les données combinées étaient déjà localisées, prêtes à être transférées vers le cloud, les données suivantes du plugin Tempo étaient manquantes:

  • Informations sur le compte Tempo
  • données sur les équipes Tempo
  • valeurs dans l'isch pour les champs Compte et Équipe
  • auteurs de documents de travail ish téléchargés depuis Jira Cloud

Il a été nécessaire de renseigner ces données lors de la migration.

Comment j'ai migré les données du plugin Tempo


Comptes


J'ai eu de la chance avec les comptes. Le plugin Tempo a une fonctionnalité intégrée pour exporter et importer des comptes.

Tout ce que j'avais à faire était d'exporter les comptes de Jira Cloud et de Jira Server vers des fichiers avant d'installer les données combinées dans Jira Cloud, puis, après avoir chargé les données combinées dans Jira Cloud, importer ces fichiers dans Cloud.

Il n'y avait qu'un seul problème: certaines des clés de compte dans Jira Cloud et Jira Server étaient identiques, j'ai donc dû modifier ces clés dans l'un de leurs fichiers. Sinon, lors de l'importation de données de compte avec les mêmes clés, les comptes seront soit mis à jour soit archivés, mais aucune de ces options ne me convenait.

Équipes


Avec les équipes, c'était plus difficile. Il n'y a pas de fonctionnalité intégrée pour transférer des commandes. Par conséquent, j'ai dû utiliser Tempo Rest Api pour obtenir des données sur les commandes, puis créer ces commandes dans Jira Cloud.

J'ai utilisé les appels Rest suivants:

  • équipes - pour recevoir des données sur les équipes et créer des équipes
  • team-membership - pour ajouter des membres d'équipe
  • team_links - pour ajouter un lien vers une équipe sur un projet ou un forum

Je voulais également utiliser Tempo Rest Api pour définir les autorisations de la commande, mais j'ai trouvé un bogue dans cette Api.

Définition des valeurs correctes dans les champs Compte et Équipe pour tous


Comme il n'y avait aucune information sur la signification des champs Compte et Équipe sur l'instance Jira combinée, j'ai dû enregistrer ces informations avant de migrer.

Pour Jira Cloud, j'ai utilisé Jira Rest Api pour rechercher tous les éléments contenant des champs Compte ou Équipe. Ensuite, j'ai enregistré tous ces ishs avec des valeurs de champ dans un fichier.

Pour Jira Server, j'ai utilisé l'API Java Jira pour obtenir les valeurs des champs Compte et Équipe.
En conséquence, j'ai obtenu deux fichiers avec des informations sur les comptes et les commandes pour ish de Jira Cloud et Jira Server.

Le problème était qu'après avoir migré les données combinées vers Jira Cloud et créé les comptes et les équipes, les ID d'équipe et de compte ne coïncidaient pas avec les anciens ID, donc quand j'ai défini les valeurs correctes d'équipe et de compte pour Ishu, j'ai dû remapper les anciens id dans les nouveaux.

Pour mettre à jour les champs Compte et Équipe, j'ai utilisé l' API Jira Core Rest standard pour mettre à jour Ishu .

Enregistrements d'emploi


Il n'y a eu aucun problème avec les enregistrements de travail provenant de ish avec Jira Server. Tout a été reporté sans aucune correction, mais il y avait des problèmes avec les enregistrements concernant le travail à partir de ish avec Jira Cloud.

Cela est dû au fait que lorsqu'un enregistrement de travail dans Jira Cloud est ajouté à l'aide du plug-in Tempo, cet enregistrement est ajouté par l'utilisateur du plug-in Tempo, et non par l'utilisateur qui effectue cet enregistrement. Par conséquent, afin d'obtenir le bon utilisateur, vous devez obtenir cet utilisateur de la base de données du plugin Tempo.

Pour cette raison, j'ai dû obtenir les bons utilisateurs des enregistrements de travail Jira Cloud avant de procéder à la migration.

Cela a été fait comme suit:

  1. J'ai tout trouvé dans Jira Cloud, où l'utilisateur de l'enregistrement de travail était un utilisateur du plugin Tempo. Je l'ai fait en utilisant l' appel standard Jira Core Rest .
  2. Ensuite, j'ai obtenu tous les enregistrements de travail d'identification Jira de ceux reçus par Ish à l'étape 1 à l'aide de cet appel Rest .
  3. Ensuite, j'ai reçu des données du plugin Tempo pour tous les enregistrements de travail obtenus à l'étape 2 et enregistrés dans un fichier. J'ai reçu des données avec Tempo Rest Api .

Ensuite, après avoir installé la sauvegarde avec les données combinées, j'ai supprimé tous les enregistrements de travail qui ont été ajoutés par l'utilisateur standard du plug-in Tempo et ajouté les enregistrements du fichier que j'ai reçu à l'étape 3.

Il est également préférable de définir le champ Estimation restante lors de l'ajout d'un enregistrement de travail à facultatif. Dans ce cas, il ne sera pas nécessaire d'obtenir la valeur actuelle du champ Estimation restante pour chaque fois que vous ajoutez une entrée de travail.

Problèmes inattendus


1. Lorsque vous installez le plug-in Tempo Timesheets dans Jira Cloud, une connexion est créée entre Jira Cloud et la base de données Tempo, ce qui est nécessaire pour que lorsque vous recevez des données du plug-in Tempo, il obtienne les données de votre instance Jira.

Le problème est que si vous restaurez Jira Cloud à partir de la sauvegarde, cette connexion n'est plus visible depuis Jira Cloud et vous devez donc réinstaller le plug-in Tempo, et donc une nouvelle connexion est établie entre Jira Cloud et Tempo. Cependant, l'ancien lien existe réellement dans la base de données Tempo.

Par conséquent, lorsque vous commencez à travailler avec ish, les données sont extraites de l'ancienne et de la nouvelle connexion, et l'ancienne connexion est principale (par exemple, si dans l'ancienne base de données Tempo, il existe une commande avec le même identifiant que dans la nouvelle, le nom de cette commande sera extrait de l'ancienne DB Tempo). Mais si vous entrez dans l'administration des équipes et des comptes via l'interface utilisateur de l'administrateur, nous verrons les données correctes de la dernière connexion. Et si nous créons un rapport de tempo personnalisé, nous verrons également les données correctes. Par conséquent, l'ancienne connexion doit être supprimée et vous ne pouvez la supprimer qu'en contactant le support Tempo. Véritable soutien Tempo a travaillé très rapidement et je lui en suis reconnaissant.

2. Après avoir migré les enregistrements de travail avec Jira Server, certains enregistrements de travail avaient une date de déduction un jour plus tôt que nécessaire. Cela était dû au fuseau horaire de l'utilisateur et à la date de débit. J'ai dû écrire un programme pour trouver tous ces enregistrements de travail et changer la date.

En général, c'est tout ce que vous devez faire et savoir pour réussir le transfert de données à partir du plugin Tempo. J'espère que ces informations vous seront utiles.

Source: https://habr.com/ru/post/fr425613/


All Articles