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 :

Reporter des modifications d'une base à une autre


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Par défaut Reporter des modifications d'une base à une autre
    Bonjour,

    J'aimerais savoir s'il est possible de reporter des modifications d'une base vers une autre ?

    Je développe un site internet sur un serveur de dev avec un MySQL. J'ai copié la base sur le serveur de prod où tourne mon site accessible aux utilisateurs.
    Actuellement quand je fais des modifs sur la base de dev (ajouter des tables, modifier le nom d'un champ...) je teste avec le PHP et quand je pense que c'est ok, je refais ces modifs à la main sur la base de prod. Sauf que je risque d'oublier certaines modifs, de modifier le mauvais champ, de faire un faute de frappe dans le nom de la table, etc.

    Je voudrais pouvoir décider à un moment, de synchroniser ma base de prod sur la base de dev, que la structure soit mise a jour de manière incrémentale, et sans perdre les datas. C'est possible ?

    PS : j'ai lu :
    - http://jgrondin.developpez.com/artic...ication_MySQL/ sur la réplication mais ca a l'air de répliquer les datas et non la structure, et en plus de répliquer instantanément alors que je veux pouvoir le faire à la demande.
    - j'ai vu aussi comment sauvegarder une base et la restaurer avec mysqldump mais je veux pas effacer toute la base de prod pour recopier celle de dev, je veux reporter que ce qui a changé, et aussi garder les datas

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    La réplication réplique les données ainsi que la structure des tables.
    Tu peux arréter la replication :
    Tu peux la redemarrer :
    Tu peux préciser ou il faut redemarrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CHANGE MASTER TO
    MASTER_HOST='192.168.0.0',
    MASTER_USER='user',
    MASTER_PASSWORD='passwd',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=0;
    Donc, tu pourrais faire ce que tu souhaites en utilisant la réplication MySQL, toutefois ce serait assez compliqué et plutot risqué...

    Il existe des outils qui peuvent comparer la structure de ta base de prod et ta base de test ( et même te proposer les scripts de MAJ).
    Par exemple :
    http://mysql-compare.com/info
    Celui-ci est payant, mais il y en a peut être des gratuits.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,


    il pose une contrainte : garder les data de son environnement de prod.

    Du coup je ne suis pas sure que la réplication soit une solution

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 68
    Par défaut
    J'ai regardé le produit mysql-compare, ça a l'air d'être ce que je veux (mais en payant). Dis-moi si je me trompe, j'ai l'impression qu'ils font un mysqldump des 2 bases et montrent les différences entre les 2 résultats, et ils proposent aussi un script de commandes SQL pour reporter les modifs.
    Question : un mysqldump sur une grosse base c'est pas trop long ? si on n'exporte pas les datas mais que la structure ca prend pas des heures ?

    Autres questions pour la réplication :
    Pourquoi est-ce risqué ?
    Est-ce qu'on peut répliquer que la structure ?

    Edit : j'utilise des tables InnoDB, je sais pas si ca change quelque chose...

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    Citation Envoyé par eprevot Voir le message
    J'ai regardé le produit mysql-compare, ça a l'air d'être ce que je veux (mais en payant). Dis-moi si je me trompe, j'ai l'impression qu'ils font un mysqldump des 2 bases et montrent les différences entre les 2 résultats, et ils proposent aussi un script de commandes SQL pour reporter les modifs.
    Question : un mysqldump sur une grosse base c'est pas trop long ? si on n'exporte pas les datas mais que la structure ca prend pas des heures ?
    Je ne sais pas ce qu'ils font, mais si ils utilisent mysqldump je suppose qu'ils l'utilisent correctement. ( l'option -d permet d'avoir uniquement la structure)


    Citation Envoyé par eprevot Voir le message
    Autres questions pour la réplication :
    Pourquoi est-ce risqué ?
    C'est risqué car tout ce que tu vas faire dans ta base de test, peux potentiellement être répliqué sur ta base de Prod ( Par exemple un TRUNCATE table).
    Pour éviter ça, il faut que tu sois très minutieux/attentif lors de ta procédure de réplication -> Donc c'est compliqué.

    Dans ton cas la réplication ne semble pas être une bonne solution. Dans mon précédent messages je souhaitais surtout te dire que :
    - La réplication de Mysql réplique aussi la structure d'une base de donnée
    - La réplication n'est pas forcement instantanée


    Citation Envoyé par eprevot Voir le message
    Est-ce qu'on peut répliquer que la structure ?
    Pas à ma connaissance, mais tu peux vérifier dans la doc :
    http://dev.mysql.com/doc/refman/5.5/en/replication.html

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 31
    Par défaut
    C'est plus que risqué d'utiliser la réplication entre ta base de dev et ta base de prod : c'est absolument à ne pas faire !

    Enregistre dans un fichier l'ensemble des requêtes de maintenance que tu appliques sur ta base de dev et joue ce fichier comme script sur ta base de prod lorsque tu livres une nouvelle version de ton application.

Discussions similaires

  1. Extraction des Données d'une base à l'autres
    Par kfmystik dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 22/03/2011, 16h15
  2. Gestion des modifs de focus avec une autre appli.
    Par Miss Ti dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/01/2008, 09h46
  3. Transférer des données d'une base à une autre
    Par Djobird dans le forum Schéma
    Réponses: 2
    Dernier message: 08/06/2007, 10h20
  4. Réponses: 2
    Dernier message: 24/05/2007, 08h50
  5. Réponses: 5
    Dernier message: 24/03/2007, 15h00

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