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

MySQL Discussion :

Ecriture de script pour migrer une base de donnée


Sujet :

MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Ecriture de script pour migrer une base de donnée
    Bonjour,

    J'arrive à la fin de la phase de développement d'une application (programmé avec ruby on rails) et je dois maintenant migrer les donnés de l'ancien logiciel (programmé
    'salement' en php/mysql) vers ma bdd.

    Mon problème est que la bdd existante est vraiment mal organisée, j'ai donc développé la nouvelle version du logiciel sans prendre en compte l'organisation de la base actuelle.
    Je vais devoir exécuter des requêtes sur la base existante, traiter les résultats puis les insérer dans la bdd de mon application. Je pense pour l'instant faire ca avec des scripts ruby en utilisant la librairie mysql, avez-vous une meilleure suggestion ?
    Je n'ai jamais fait une telle opération et ca s'annonce compliqué est long, si il y a un moyen reconnu comme étant le meilleur pour faire ca, je suis preneur !

    Merci

    adrien

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu as raison sur un point :
    ça s'annonce compliqué et long


    J'ai eu ce genre de chose à faire et j'ai en fait migré les données directement avec des requêtes SQL.

    J'ai tout noté dans un fichier texte et quand est venu le moment de la migration finale après tests et prise en compte des nouvelles données qui avaient pu être insérées pendant le développement de la nouvelle appli, j'ai créé un script PHP pour lancer toutes les requêtes nécessaires dans l'ordre.

    Dans certains cas, je n'ai pas pu me contenter de requêtes SQL mais j'ai dû opérer par un script PHP. Par exemple, pour séparer des colonnes multivaluées.

    Si tu as normlisé l'ancienne base de données qui ne l'était pas, tu vas probablement tomber sur des données mortes.

    Pour chaque table, je faisais des SELECT DISTINCT et des COUNT ou COUNT(DISTINCT) pour savoir à l'avance combien j'étais sensé migrer de lignes.
    Je lançais ensuite la migration du petit paquet de données que je venais de compter puis je comptais les données migrées. Si je n'obtenais pas le même résultat, j'en cherchais la cause (en cherchant les lignes manquantes) et je découvrais bien souvent des données mortes ou incohérentes.

    Quoi qu'il en soit, je te conseille de tout noter et de tout documenter parce que dans trois mois, tu ne sauras plus pourquoi tu as fait ça plutôt que ça.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Finalement j'ai trouvé une bonne solution, il n'y a pas de solution miracle mais ca permet de faire ca efficacement en utilisant ruby et la librairie sequel.
    Voir les explications ici : http://groups.google.com/group/rails...ed21bc086fa4ba

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/05/2015, 11h41
  2. Réponses: 0
    Dernier message: 13/01/2015, 13h56
  3. Script pour restaurer une base de données
    Par bssouf21 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/05/2012, 09h59
  4. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

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