Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2006, 12h03   #1
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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 :
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 !!
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 13h12   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Ta migration, c'est une tache effectuée souvent ou une fois pour toutes ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 13h45   #3
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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...)
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 13h50   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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.
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 15h48   #5
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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).
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 16h01   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Qu'est-ce que tu as essayé ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 15h52   #7
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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.
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 16h19   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
quel script d'insertion ? il vient d'où ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 09h34   #9
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

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

Le script SQL que j'ai exporté de la base MySQL.
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 09h38   #10
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Et comment tu as fait pour l'exporter ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 09h46   #11
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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'
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 09h56   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Ce fut laborieux
Et si tu sauves ton csv en utf8 ça marche pas ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 11h41   #13
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
Comment faire ?
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 14h09   #14
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Avec un éditeur qui se respecte
Peut-etre avec excel Tu es sous *nix ou windows ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 09h25   #15
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
Je suis sous Windows
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h19.


 
 
 
 
Partenaires

Hébergement Web