Como eu combinei os dados do plug-in Tempo para o Jira Server e o Jira Cloud e os migrei de volta para o Jira Cloud

Olá pessoal!

Os plug-ins Tempo para Atlassian Jira são instalados em um grande número de instâncias Jira na nuvem e nos servidores. Eu tive que combinar os dados da nuvem e do servidor Jira e definir os dados combinados novamente para a nuvem. Além dos dados padrão do Jira, eu também precisava combinar os dados do plug-in Tempo. Neste artigo, mostrarei como fiz a união e a migração dos dados do Tempo.

Dados de andamento que eu migrei:


  • Contas Tempo (contas)
  • Equipes de Tempo (equipes)
  • Os valores dos campos Conta e Equipe para todos os ishui em Jira
  • Logs de trabalho

O processo de integração e migração:


Peguei dois Jira com a seguinte configuração: Jira Software 7.11.2 e Jira Service Desk 3.14.2. Em seguida, removi o backup do Jira Cloud e o instalei na primeira instância, depois removi o backup do Jira Server e o instalei na segunda instância. Depois disso, transferi os dados da segunda instância para a primeira usando o plug-in do Configuration Manager (embora fosse possível usar o plug-in do Project Configurator ).

Como resultado, descobri que, na primeira instância, onde os dados combinados já estavam localizados, prontos para serem transferidos para a Cloud, estavam faltando os seguintes dados do plugin Tempo:

  • Informações da conta Tempo
  • dados sobre equipes Tempo
  • valores no ish para os campos Conta e Equipe
  • autores de registros de trabalho ish que foram baixados do Jira Cloud

Foi necessário preencher esses dados durante a migração.

Como eu migrei os dados do Tempo Plugin


Contas


Eu tive sorte com as contas. O plugin Tempo possui uma funcionalidade integrada para exportar e importar contas.

Tudo o que eu precisava fazer era exportar as contas do Jira Cloud e do Jira Server para arquivos antes de instalar os dados combinados no Jira Cloud e, depois de carregar os dados combinados no Jira Cloud, importar esses arquivos para o Cloud.

Havia apenas um problema: algumas das chaves de conta no Jira Cloud e no Jira Server eram as mesmas, portanto, eu precisava alterar essas chaves em um de seus arquivos. Caso contrário, ao importar dados da conta com as mesmas chaves, as contas serão atualizadas ou arquivadas, mas nenhuma dessas opções me agradou.

Equipas


Com as equipes foi mais difícil. Não há funcionalidade interna para transferir comandos. Portanto, tive que usar o Tempo Rest Api para obter dados sobre comandos e, em seguida, criar esses comandos no Jira Cloud.

Eu usei as seguintes chamadas Rest:


Eu também queria usar o Tempo Rest Api para definir as permissões do comando, mas encontrei um bug neste Api.

Definir os valores corretos nos campos Conta e Equipe para todos


Como não havia informações sobre o significado dos campos Conta e Equipe na instância combinada do Jira, tive que salvar essas informações antes de migrar.

Para o Jira Cloud, usei o Jira Rest Api para pesquisar todos os itens que têm os campos Conta ou Equipe preenchidos. Em seguida, salvei todos esses ishs com valores de campo em um arquivo.

Para o Jira Server, usei a API Java do Jira para obter os valores dos campos Conta e Equipe.
Como resultado, obtive dois arquivos com informações sobre contas e comandos para ish do Jira Cloud e Jira Server.

O problema era que, depois de migrar os dados combinados para o Jira Cloud e criar as contas e as equipes, os IDs de equipe e de conta não coincidiram com os IDs antigos. Portanto, quando defino os valores corretos de equipe e conta para Ishu, tive que remapear os antigos id em novos.

Para atualizar os campos Conta e Equipe, usei a API padrão do Jira Core Rest para atualizar o Ishu .

Registros de trabalho


Não houve problemas com os registros de trabalho provenientes do ish com o Jira Server. Tudo foi adiado sem nenhuma correção, mas houve problemas com os registros sobre o trabalho do ish com o Jira Cloud.

Isso ocorre porque, quando um registro de trabalho no Jira Cloud é adicionado usando o plug-in Tempo, esse registro é adicionado a partir do usuário do plug-in Tempo, e não do usuário que faz esse registro. Portanto, para obter o usuário certo, você precisa obtê-lo no banco de dados do plugin Tempo.

Por esse motivo, tive que obter os usuários certos dos registros de trabalho do Jira Cloud antes de fazer a migração.

Isso foi feito da seguinte maneira:

  1. Encontrei tudo no Jira Cloud, onde o usuário do registro de trabalho era usuário do plugin Tempo. Fiz isso usando a chamada Jira Core Rest padrão.
  2. Depois, obtive todos os registros de trabalho do Jira id daqueles recebidos por Ish na etapa 1 com a ajuda dessa chamada de descanso .
  3. Em seguida, recebi dados do plug-in Tempo para todos os registros de trabalho obtidos na etapa 2 e salvei em um arquivo. Recebi dados usando o Tempo Rest Api .

Depois de instalar o backup com os dados combinados, excluí todos os registros de trabalho que foram adicionados ao usuário padrão do plug-in Tempo e adicionamos os registros do arquivo que recebi na etapa 3.

Também é melhor definir o campo Estimativa restante ao adicionar um registro de trabalho como opcional. Nesse caso, não será necessário obter o valor atual do campo Estimativa restante para cada vez que você adicionar uma entrada de trabalho.

Problemas inesperados


1. Quando você instala o plug-in Tempo Timesheets no Jira Cloud, é criada uma conexão entre o Jira Cloud e o banco de dados Tempo, necessário para que, quando você receber dados do plug-in Tempo, ele obtenha os dados da sua instância Jira.

O problema é que, se você restaurar o Jira Cloud a partir do backup, essa conexão não será mais visível no Jira Cloud e, portanto, será necessário reinstalar o plug-in Tempo e, assim, uma nova conexão será formada entre o Jira Cloud e o Tempo. No entanto, o link antigo realmente existe no banco de dados Tempo.

Como resultado, quando você começa a trabalhar com ish, os dados são puxados pelas conexões antigas e novas e a conexão antiga é primária (ou seja, se no banco de dados antigo do Tempo houver um comando com o mesmo ID do novo, o nome desse comando será retirado do antigo). DB Tempo). Mas se você inserir a Administração de equipes e contas através da interface do usuário do administrador, veremos os dados corretos da última conexão. E se criarmos um Relatório de andamento personalizado, também veremos os dados corretos. Portanto, a conexão antiga deve ser excluída e você pode removê-la apenas entrando em contato com o suporte do Tempo. Verdadeiro apoio O Tempo trabalhou muito rapidamente pelo qual sou grato a ela.

2. Após migrar os registros de trabalho com o Jira Server, alguns registros de trabalho tiveram uma data de dedução um dia antes do necessário. Isso ocorreu devido ao fuso horário do usuário e à data do débito. Eu tive que escrever um programa para encontrar todos esses registros de trabalho e alterar a data.

Em geral, é tudo o que você precisa fazer e saber para transferir com êxito os dados do plugin Tempo. Espero que esta informação seja útil.

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


All Articles