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

Administration MySQL Discussion :

Sauvegarde schéma et données d'une base en respectant les FK


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Sauvegarde schéma et données d'une base en respectant les FK
    Bonjour, J'ai bien cherché mais je n'ai pas trouvé une solution pour ce problème. J'ai effectué le backup de ma base à l'aide de mysqldump avec la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -u root --password=admin myDB --opt --routines --triggers --default-character-set=utf8 --complete-insert > %FICHIER_MON_DB%
    En effet quand je fais un dump, mysqldump sauvegarde à la volé par ordre alphabétique sans tenir compte de mes Foreign key. De ce fait, j'ai des erreurs lors de la restauration.
    Existe-t-il un outils qui gère cette problématique ? Es ce que quelqu'un a idée solution pour contourner ce problème.
    Je vous remercie d'avance.
    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Si tes erreurs sont sur les CREATE TABLE, je ne vois pas trop...

    Si par contre c'est juste à l'insertion, il te suffit de passer cette requête avant l'import :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @@foreign_key_checks = 0 ;
    et de rétablir ensuite le comportement normal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @@foreign_key_checks = 1 ;

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Merci pour ta réponse.
    Le problème c'est que lors du backup j'ai par exemple cette table :
    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
    DROP TABLE IF EXISTS `bord`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `bord` (
      `bo_code_pk` int(11) NOT NULL auto_increment,
      `bo_numero` int(11) default NULL,
      `bo_mode` enum('ESP','CHQ','MAN','VIR') NOT NULL,
      `bo_montant` decimal(11,3) NOT NULL default '0.000',
      `bo_dateval` date default NULL,
      `bo_remise` date default NULL,
      `bo_annee` date NOT NULL,
      `bo_user_fk` int(11) NOT NULL,
      `bo_created` date default NULL,
      `bo_updated` date default NULL,
      PRIMARY KEY  (`bo_code_pk`),
      KEY `index_bord_user_fk` USING BTREE (`bo_user_fk`),
      CONSTRAINT `bord_user_fk` FOREIGN KEY (`bo_user_fk`) REFERENCES `utilisateur` (`UT_CODE_PK`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB AUTO_INCREMENT=100009 DEFAULT CHARSET=utf8;
    SET character_set_client = @saved_cs_client;
    Or, la table utilisateur n'est pas encore crée, donc l'erreur se produit lors de la création de la table. Je n'ai pas trouvé un moyen (c'est à dire une option à rajouter avec mysqldump) pour faire un backup sans ces ordres de création des foreign key ou créer ces ordres de création avec la commande ALTER à la fin du script.
    Encore merci de votre collaboration.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Je te suggère de faire d'abord un dump sans les données, qui te donnera tous les CREATE TABLE, et de les ordonner toi-même par ordre de dépendance. Tu pourras ensuite faire un second dump avec seulement les données.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    En fait, c'est ma seule solution. Mais là aussi, j'ai des problèmes puisque le fichier dump obtenu avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\MySQL\bin\mysqldump.exe -u root -padmin ascbn > C:\Sources\BDD\data_acsbn_%date:~6,4%%date:~3,2%%date:~0,2%.sql
    contient aussi la définition des données c'est à dire la création des tables.
    Pouvez vous m'indiquer quelle l'option pour obtenir juste un script contenant juste les données.
    Merci de votre aide et vos suggestion.
    Cordialement

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Apparemment, ça n'existe pas. Tu as deux options :

    • Utiliser phpMyAdmin au lien de mysqldump, puisque lui te permet d'exporter sans la structure.
    • Recharger ton dump structure + données ; les CREATE TABLE vont faire des erreurs, il te suffit de les ignorer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/01/2014, 21h41
  2. Réponses: 3
    Dernier message: 07/05/2013, 12h39
  3. Réponses: 2
    Dernier message: 07/08/2011, 10h05
  4. Sauvegarder la structure et les données d'une base MySQL
    Par Invité dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 14/02/2011, 19h53
  5. Sauvegarde de donnée dans une base dBase ou Paradox
    Par l'Ermite Misanthrope dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/01/2008, 19h02

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