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

Outils MySQL Discussion :

Migration MySQL vers SQLite


Sujet :

Outils MySQL

  1. #1
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut Migration MySQL vers SQLite
    Bonjour

    Je suis en train de faire un script en php pour migrer des données d'une base MySQL à une base SQLite.
    Je voudrais savoir s'il existe une solution plus efficace que des boucles imbriquées pour récupérer les données d'une table de ma base MySQL puis les réinjecter dans ma base SQLite.

    Pour l'instant je compte faire un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Tant qu'on n'a pas traité toutes les tables
    while ($table = mysql_fetch_array($tables)) {
            //Ici je récupère toutes les données de la table courante
    	$sql = $mysql_query("select * from $table[0]");	
     
    	// Ici j'extrais les champs de la table d'un tableau pour les mettre sous la forme 'champ1, champ2, champ3, ...' (en n'oubliant pas de mettre des quotes pour les string et les dates :? )
     
           //Ici j'insère les données lignes par lignes dans la base SQLite...
    	while ($ligne = mysql_fetch_array($sql)) {
    		sqlite_exec("insert into $table[0] values(..., ..., ..., ...);") or die("Impossible d'insérer dans $table[0] pour SQLite");
    	}
    }
    C'est très fastidieux et ça ne me semble pas du toouuuuut optimisé
    Comme c'est la première fois que je fais ça, je ne sais pas trop s'il existe des moyens pré-conçus en passant par un script php...

    Merci d'avance !!

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ta migration, c'est une tache effectuée souvent ou une fois pour toutes ?

  3. #3
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Pour l'instant une fois pour toute, à l'avenir ce sera peut-être réitéré mais pas souvent (peut-être une fois tous les 6 mois...)

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Dans ce cas là essaie de faire un dump de ta base en ligne de commande, puis d'importer ce dump dans sqlite.
    Si tu utilise phpMyAdmin, tu peux aussi faire un export, tu n'exportes que les données, avec des insert complets et ensuite tu importes dans sqlite.

  5. #5
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Mon problème est que les données dans ma base MySQL sont stockées au format latin1, et qu'elles doivent être stockées dans SQLite au format utf-8 (seul format reconnu avec utf-16...).

    Il faut donc qu'elles subissent une conversion... (sachant qu'elles doivent rester au format latin1 dans MySQL).

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Qu'est-ce que tu as essayé ?

  7. #7
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    J'ai crée les table à l'identique dans ma base SQLite, puis j'ai récupéré le script d'insertion des données que j'ai exécuté sous SQLite. Les caractères accentués ne sont pas reconnus.

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    quel script d'insertion ? il vient d'où ?

  9. #9
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Oups oui pardon j'ai pas beaucoup détaillé lol.

    Le script SQL que j'ai exporté de la base MySQL.

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Et comment tu as fait pour l'exporter ?

  11. #11
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Décidément ça va pas en ce moment, ce n'est pas un script SQL que j'ai exporté... je l'ai exporté au format CSV

    J'utilise MySQL Query Browser (outil de gestion de bdd MySQL en mode client riche), j'ai donc fais 'clic droit' > 'export resultSet' -> 'CSV'

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ce fut laborieux
    Et si tu sauves ton csv en utf8 ça marche pas ?

  13. #13
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Comment faire ?

  14. #14
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Avec un éditeur qui se respecte
    Peut-etre avec excel Tu es sous *nix ou windows ?

  15. #15
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Je suis sous Windows

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/02/2010, 14h25
  2. [EJB3 Entity] Migration MySQL vers Firebird
    Par Mister Nono dans le forum Java EE
    Réponses: 0
    Dernier message: 23/12/2008, 19h51
  3. Migration MySQL vers MSSQL Express 2005
    Par djoyeux dans le forum Migration
    Réponses: 0
    Dernier message: 28/05/2008, 17h47
  4. Migration MySQL vers SQL Server
    Par aemag dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/11/2006, 16h35
  5. Migrations MySQL vers Interbase
    Par M.Dlb dans le forum Migration
    Réponses: 3
    Dernier message: 13/07/2005, 16h30

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