2010-08-08 2 views
0

J'ai un environnement JIRA qui contient déjà des informations et j'essaie de fusionner tous les bugs bugzilla dans JIRA. J'essaie d'utiliser le formulaire importateur JIRA "BugzillaImportBean.java" Mais il échoue quand il essaie d'insérer dans la table OS_CURRENTSTEP en raison d'une violation de clé unique, essentiellement l'ID existe déjà dans JIRA dans cette table.Migration de Bugzilla vers une clé dupliquée JIRA non fraîche

Donc, il se bloque à final GenericValue issue = createIssue (resultSet, getProductName (resultSet, true), componentName); Erreur lors de l'importation de données à partir de Bugzilla: com.atlassian.jira.exception.CreateException: Impossible de créer une nouvelle étape en cours pour # 259350: cause première: lors de l'insertion: [GenericEntity: OSCurrentStep] [id, 357430] [startDate, 2010 -07-23 05: 32: 14.414] [status, Open] [propriétaire,] [finishDate, null] [actionId, 0] [stepId, 1] [dateDate, null] [entryId, 259350] (Exception SQL lors de l'exécution du suivant: INSERER DANS OS_CURRENTSTEP (ID, ENTRY_ID, STEP_ID, ACTION_ID, PROPRIETAIRE, START_DATE, DUE_DATE, FINISH_DATE, STATUS, CALLER) VALEURS (?,?,?,?,?,?,?,?,?,?) (Dupliquer entrée '357430' pour la clé 1))

Quel est le meilleur moyen de résoudre ce problème? Bugzilla Database Schema: http://tldp.org/LDP/bugzilla/Bugzilla-Guide/dbschema.html Jira Database Schema: 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; 

Répondre

1
  1. Le problème pourrait être une valeur de séquence en double. Vérifiez la table SEQUENCE_VALUE_ITEM, recherchez une ligne telle que "OSCurrentStep" (si ce n'est pas le nom, le mappage des tables aux noms d'entités est dans WEB-INF/classes/entitydefs/entitymodel.xml)

    select * from SEQUENCE_VALUE_ITEM where SEQ_NAME='OSCurrentStep'

    • Vérifiez quelle est la valeur utilisée mAXIMAL: select MAX(ID) from OS_CURRENTSTEP

    • Set SEQ_ID plus grand que la valeur maximale utilisée de, arrondi à un multiple de 10. (décrit dans http://confluence.atlassian.com/display/JIRA/Database+Schema # SEQUENCE_VALUE_ITEM)

    • La double clé « 357430 » échec est un multiple de 10, ce qui suggère c'est la raison

  2. Une solution plus simple mais moins probable: vous essayez d'importer la même question une deuxième fois ?

    Si oui, « cliquez sur « Importer que de nouveaux problèmes » case à cocher dans l'importateur » comme décrit ici: http://confluence.atlassian.com/display/JIRA/Importing+Data+from+Bugzilla

    • (Vous remarquerez que l'instruction a échoué est dans cette condition: if (!onlyNewIssues || !previouslyImportedKeys.containsKey...)
1

On dirait que l'importateur Bugzilla a obtenu confus au sujet de situation et étapes de flux de travail. Je ne me souviens pas s'il essaie de créer de nouvelles étapes de workflow à la volée? Cet importateur est le petit-déjeuner d'un bon chien, c'est pourquoi j'ai écrit mon propre produit pour faire des importations dans JIRA. J'en fais un autre demain en fait.

Quoi qu'il en soit, une façon d'affiner le problème consiste à importer un sous-ensemble de problèmes. Peut-être que vous n'avez pas la cartographie des états de Bugzilla (personnalisés?) Aux statuts de JIRA complète?

Il y a plus d'informations sur les entrailles de ce à http://confluence.atlassian.com/display/JIRA/Issue+status+and+workflow

~ Matt

+0

"essaie de créer de nouvelles étapes de workflow à la volée?" Je ne pense pas que ce soit le cas. En regardant la page que vous avez citée, Step est un petit entier fixe, correspondant à Status. Mais il insère une ligne OS_CURRENTSTEP * par numéro *. –