transformer une sauvegarde de base de données .xml en .sql ?

Petit nouveau ! | 5 Messages

12 avr. 2013, 23:09

Bonjour,
Sur un site web en MySQL/SPIP/PHP, j'ai supprimé par mégarde toutes les bases de données, pensant ensuite en créer une nouvelle en changeant de version de MySQL et y importer ma base de données au format .sql.
Mais ma sauvegarde .sql n'est pas bonne, il y a eu un plantage pendant le téléchargement et je ne m'en suis pas rendue compte, le navigateur ne me l'a pas notifié et en regardant le fichier, n'y connaissant rien, j'ai trouvé normal de voir un enchaînement de caractères incompréhensibles pour le commun des mortels, dont moi.
Il me semble que c'est possible de reconstruire le site, sachant que j'ai encore tous les fichiers du FTP, et que j'ai aussi une sauvegarde récente de la base de données au format .xml et .xml.gz (mais dont je ne suis pas sûre qu'elle soit bonne car on avait quelques problèmes sur le site ces derniers temps après avoir changé de version de PHP. au pire il me reste des sauvegardes plus anciennes).

En cherchant des infos là-dessus, j'ai cru comprendre que c'était possible de transformer ma sauvegarde .xml en fichier .sql que je pourrai importer dans la nouvelle base de données (actuellement vide puisque j'ai supprimé les anciennes...).

Alors savez-vous si c'est réellement possible, et si oui comment faire ?

(sachant que je n'y connais pas grand chose, enfin tout ce que je sais en MySQL, PHP tout ça tout ça, je l'ai appris ces trois derniers jours en cherchant comment changer la version de MySQL de mon site puis comment réparer ma connerie)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 avr. 2013, 23:58

Comme indiqué dans le sujet d'origine mysql donne la possibilité de charger un fichier XML directement.

Bien entendu celui doit avoir un formalité particulier. Si le fichier XML est issu de mysql cela ne doit pas poser de soucis.

https://dev.mysql.com/doc/refman/5.5/en/load-xml.html

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

13 avr. 2013, 20:32

merci de ta réponse,
je lis mal l'anglais mais si j'ai bien compris le lien que tu me donnes indique comment entrer un fichier XML dans une table, or il n'y a aucune table sur mon site, toute la base de données a été supprimée. mon fichier XML est lui-même la base de données à importer, avec déjà plein de tables.
mysql donne la possibilité de charger un fichier XML directement.
comment ? depuis phpmyadmin ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 avr. 2013, 00:26

Comme indiqué dans la doc.

Après faut voir ce que contient ton fichier XML, autant au niveau structure qu'au niveau données.

Si tu peux poster une partie du fichier ça peu aider.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

14 avr. 2013, 12:02

mon fichier XML provient d'une sauvegarde réalisée depuis la partie interne du site. c'est un fichier de 13Mo, 140000 lignes, il commence comme ça :

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?> <SPIP version="2.0.10" version_base="14558" version_archive="1.3" adresse_site="http://www.non-fides.fr" dir_img="IMG/" dir_logos="IMG/" > <spip_mots_breves> <id_mot>28</id_mot> <id_breve>50</id_breve> </spip_mots_breves>
il y a aussi un truc que je ne comprends pas, c'est pourquoi il n'y a pas l'onglet "import" dans le phpmyadmin sur lequel je vais (par l'hébergeur).

Mammouth du PHP | 1511 Messages

14 avr. 2013, 13:58

Si c'est un export interne à SPIP, celui-ci ne sera applicable que via l'administration de SPIP.
phpMyAdmin ne comprend que les backups SQL ou les XML qu'il a lui même édité.

Petit nouveau ! | 5 Messages

14 avr. 2013, 18:58

Si c'est un export interne à SPIP, celui-ci ne sera applicable que via l'administration de SPIP.
phpMyAdmin ne comprend que les backups SQL ou les XML qu'il a lui même édité.
ah ok donc ya pas de moyen de l'adapter pour que phpmyadmin puisse l'importer ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 avr. 2013, 21:31

il te faudra te palucher le fichier xml pour voir a quoi correspond la structure, ensuite tu pourras creer un script php qui fera la liaison entre le fichier xml et le serveur sql (a partir de simplexml ça ne doit pas être super complexe).

sinon regarde dans les option de spip (et la doc) il y a surement moyen de repartir sur une sauvegarde.

n'oublie pas de changer les adresses du sgbd ainsi que l'utilisateur et le mot de passe.


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

14 avr. 2013, 21:55

oulla non ben là c'est totalement hors de ma portée...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 avr. 2013, 23:36

XD

Spip doit forcément avoir un système pour réintégrer la base sauvegardée, regarde dans la doc, ou demande sur un forum spécialisé.

@+
Il en faut peu pour être heureux ......