IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

fusionner des base de données Bugzilla


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut fusionner des base de données Bugzilla
    Bonjour pour ceux qui connaissent Bugzilla, ceci tourne tourne sur un MySQL contenant une base de données appelée Bugs et contenant 51 tables dont la centrale nommée elle aussi bugs avec une clé primaire autoincrémentée : bug_id.
    Bug_id fait dépendre plein de tables dont les attachements les users etc...
    Document sur le BDD Bugzilla

    Mon problème c'est qu'on m'a demandé de fusionner deux Bugzilla ensemble. En effet deux équipes bossent sur deux Bugzilla différentes et aimeraient ne travailler que sur une seule structure.

    Le problème au niveau des base de données c'est que je me retrouve avec donc deux DB nommées BUGS avec des bug_id commencant à 1 et finissant respectivement à 1074 et 744.

    Connaissez vous un moyen rapide de fusionner ces deux tables. Genre exporter une sans aucune reference autoincrementée en sql et ensuite l'importer dans l'autre base de donnée ?

    Je bosse sur phpmyadmin.

    Merci pour vos réponses, je me suis pas mal creusé la tête et je ne vois pas comment faire... Aucun outil de Bugzilla ne permet de réaliser le travail demandé.
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 71
    Points
    71
    Par défaut
    Salut,

    A ma connaissance, la seule solution consiterais à réaliser un script simple en php avec un bouclage sur ta requête d'insertion :

    Tu as deux bases BUGS1 et BUGS2 (que tu sauvegardes soigneusement)

    Au départ, tu exportes complettement ta base BUGS2, tu l'importes dans une base BUGS3 par exemple.
    Dans ta nouvelle base BUGS3, tu renommes toutes les tables en leur ajoutant le suffixe '_2' pour ne pas qu'il y ai de doublons. Ensuite tu exportes cette nouvelle base BUG3 pour la réimporter dans BUGS1.

    Un truc dans le genre ca pour le php (c'est juste une piste, je n'ai pas tester le code):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    $sql = 'SELECT * FROM table_bugs_2 ORDER BY bug_id';
    $req= mysql_query($sql) or die(mysql_error());
     
    while ($res = mysql_fetch_assoc($req))
    {
        $ancien_id_bug = $res['bug_id']; // Sauvegarde de l'ancien id
        unset($res['bug_id']);
     
        foreach($res as $key => $value)
            $insert[] = $key.'="'.addslashes($value).'"';
     
        $insert = implode(', ', $insert);
     
        $sql = 'INSERT INTO table_bug SET '.$insert;
        $req = mysql_query($sql) or die(mysql_error());
     
        $nouv_id_bug = mysql_insert_id();
     
        // A faire pour chacune de tes tables annexes(_2)
    	$sql = 'UPDATE ta_table1_2 SET id_bug="'.$nouv_id_bug.'" WHERE id_bug = '.$ancien_id_bug;
        $req = mysql_query($sql) or die(mysql_error());
     
    	$sql = 'UPDATE ta_table2_2 SET id_bug="'.$nouv_id_bug.'" WHERE id_bug = '.$ancien_id_bug;
        $req = mysql_query($sql) or die(mysql_error());
     
    	...
    }
    ensuite, tu exportes le contenu des tes tables annexes (avec le suffixe '_2') et tu les importes dans les tables initiales (sans sufixe).

    Voila, tu peux supprimer les tables suffixées...


    Si je n'ai pas été assez clair, n'hésite pas à me reposer des questions

Discussions similaires

  1. Avenir des bases de données relationnelles ?
    Par LordBob dans le forum Décisions SGBD
    Réponses: 53
    Dernier message: 30/10/2005, 23h27
  2. Réponses: 9
    Dernier message: 25/07/2005, 15h56
  3. Noms des bases de données
    Par abdou.sahraoui dans le forum Administration
    Réponses: 8
    Dernier message: 01/09/2004, 15h21
  4. structure des bases de données Palm
    Par nomdutilisateur dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/01/2004, 17h47
  5. Réponses: 3
    Dernier message: 24/10/2003, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo