Pergunta

Eu tenho um ambiente JIRA que já tem algumas informações e estou tentando mesclar todos os bugs do Bugzilla no JIRA. Estou tentando usar o importador Jira "BugzillaimportBean.java", mas está falhando quando tenta se inserir na tabela OS_CurrentStep devido a uma violação chave única, essencialmente o id já existe em Jira nessa tabela.

Por isso, trava no final do genérico de valor genérico = CreateIsue (ResultSet, getProductName (ResultSet, true), componentName);

Erro a importação de dados de Bugzilla: com.atlassian.jira.exception.createexception: não foi possível criar uma nova etapa atual para #259350: raiz Causa: enquanto inserção: [genérica: oscurrentstep] [ID, 357430] [Startdate, 2010-07-23 05: 32: 14.414] [status, aberto] [Proprietário,] [FinalizeDate, null] [ActionId, 0] [StepId, 1] [Duedate, Null] [EntryId, 259350] (exceção do SQL ao executar o seguinte: inserir em Os_currentstep (id, entrada_id, step_id, action_id, proprietário, start_date, due_date, finalize_date, status, chamador) valores (?,? ,? ,? ,? ,? ,? ,? ,?,?) (Duplique a entrada '357430' para a chave 1))

Qual é a melhor maneira de consertar isso? Esquema de banco de dados Bugzilla: http://tldp.org/ldp/bugzilla/bugzilla-guide/dbschema.htmlEsquema de banco de dados JIRA: http://confluence.atlassian.com/display/jira/database+schema http://confluence.atlassian.com/display/jira/modifying+the+bugzilla+importer

CREATE TABLE `OS_CURRENTSTEP` (
  `ID` decimal(18,0) NOT NULL,
  `ENTRY_ID` decimal(18,0) default NULL,
  `STEP_ID` decimal(9,0) default NULL,
  `ACTION_ID` decimal(9,0) default NULL,
  `OWNER` varchar(60) default NULL,
  `START_DATE` datetime default NULL,
  `DUE_DATE` datetime default NULL,
  `FINISH_DATE` datetime default NULL,
  `STATUS` varchar(60) default NULL,
  `CALLER` varchar(60) default NULL,
  PRIMARY KEY  (`ID`),
  KEY `wf_entryid` (`ENTRY_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Foi útil?

Solução

  1. O problema pode ser um valor de sequência duplicado. Verifique a tabela sequence_value_item, procure uma linha como "Oscurrentstep" (se esse não é o nome, o mapeamento de tabelas para nomes de entidades está em web-inf/classes/entitydefs/entitymodel.xml)

    select * from SEQUENCE_VALUE_ITEM where SEQ_NAME='OSCurrentStep'

    • Verifique qual é o valor máximo usado:select MAX(ID) from OS_CURRENTSTEP

    • Defina seq_id maior que o valor máximo usado, arredondando até um múltiplo de 10. (descrito em http://confluence.atlassian.com/display/jira/database+schema # Sequence_value_item)

    • A chave duplicada com falha '357430' é um múltiplo de 10, o que sugere que esse é o motivo

  2. Uma solução mais fácil, mas menos provável: você está tentando importar o mesmo problema pela segunda vez?

    Nesse caso, "clique na caixa de seleção 'Importar apenas novos problemas' no importador", conforme descrito aqui: http://confluence.atlassian.com/display/jira/importing+data+from+bugzilla

    • (Você notará que a declaração fracassada está dentro desta condição: if (!onlyNewIssues || !previouslyImportedKeys.containsKey...)

Outras dicas

Parece que o importador de Bugzilla ficou confuso sobre as etapas de status e fluxo de trabalho. Não me lembro se tenta criar novas etapas de fluxo de trabalho em tempo real? Esse importador é o café da manhã de um cachorro certo, e é por isso que escrevi meu próprio produto para fazer importações para Jira. Estou fazendo outro amanhã de fato.

De qualquer forma, uma maneira de restringir o problema é importar um subconjunto de problemas. Talvez você não tenha o mapeamento dos estados de Bugzilla (personalizado?) Para os status do JIRA concluídos?

Há mais informações sobre as tripas disso em http://confluence.atlassian.com/display/jira/issue+Status+And+workflow

~ Matt

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top