Bonjour,
j'ai perdu les commentaires lors de l'upgrade 1.4.1 vers 1.5 car j'ai voulu changer de repertoire ma gallerie de photos (racine de mon site auparavant, deplace vers /Galerie à présent), et ayant eu des erreurs lors de l'upgrade (certainement lié au chgt de repertoire), j'ai tout reinstalle en partant de 0.
J'avais par contre precedemment creer un dump. Comment recuperer ces commentaires present dans le dump à ma nouvelle gallerie de photos (je suis un novice en Php) ?
Merci pour votre aide
Amicalement
Ced
PS:bravo en tout cas aux concepteurs de ce Php Web Gallery, je crois que je vais rapidement me mettre au Php qd je vois ce que l'on peut faire !!!
Hors ligne
Dump de quoi?
C'est la base MySQL qu'il faut avoir sauvegardé... Est-ce le cas?
Via phpMyAdmin as-tu fait un export des données et si oui dans quel format?
Que tu ne sois pas un expert en php, ce n'est pas grave du tout.
Mais tu vas devoir récupérer avec patience si tu n'es pas expert en sql...
On va t'aider si tu as fait un export...
Hors ligne
c'est bien un dump de la base MySQL que j'ai fait, comme il l'etait demande dans les recommendations avant l'upgrade. C'est un fichier .sql que j'ai recupere (j'ai fait un "transfert" de toutes les tables - je crois que c'est comme cela que l'on fait un dump d'une base MySQL, et cela m'a genere un fichier)...
Les catégories sont belles et bien presentes dans ce fichier, les commentaires, tout mais apres, je ne sais pas comment faire pour reexploiter ceci. Expert en sql, malheureusement je ne le suis pas non plus, mais j'ai qqs notions d'informatique, et sait taper qqs requetes sql...
volcom, ta réponse est un peu rapide, il me semble.
Je t'explique et je détaillerai dans un autre post.
Il a réinstallé tout.
Du coup, l'image avec l'id 11 a maintenant peut être l'id 18, on n'en sait rien.
Hors ligne
Peux-tu nous donner les 3 ou 4 premiers ordres SQL de ton fichier qui font un "insert into ..._comments .....".
Les ordres SQL sont délimités par des ";".
Les problèmes sont en 1.5 tu as une info de plus dans cette même table (pas grave).
L'autre problème majeur est que la seconde colonne image_id contient maintenant une information fausse
(ce que j'expliquais à volcom).
Il falloir que pour chaque "insert" tu devines de quelle photo il s'agit et que tu retrouves son id interne.
Donne les 3 ou 4 premiers ordres demandés et je t'explique.
Hors ligne
c'est ca que tu me demandes VDigital ? en tout cas, j'ai pas trop d'images pour l'instant donc meme su je dois me cogner qqs lignes à la main, c'est pas bien grave...
-- Contenu de la table phpwebgallery_categories`
--
INSERT INTO `phpwebgallery_categories` VALUES (1, '2005-11-10', 2, 'Loane', NULL, NULL, 'Loane', 1, 'private', 1, 'true', 'true', 1, '1', 'true', '1');
INSERT INTO `phpwebgallery_categories` VALUES (2, '2005-11-10', 10, 'Loane J5 RetourMaison', 1, NULL, 'Loane_J5_RetourMaison', 6, 'private', 1, 'true', 'true', 78, '1,2', 'true', '1.6');
INSERT INTO `phpwebgallery_categories` VALUES (3, '2005-11-10', 9, 'Loane J2', 1, NULL, 'Loane_J2', 3, 'private', 1, 'true', 'true', 7, '1,3', 'true', '1.3');
INSERT INTO `phpwebgallery_categories` VALUES (4, '2005-11-10', 9, 'Loane J1 Me Voila', 1, NULL, 'Loane_J1_Me_Voila', 2, 'private', 1, 'true', 'true', 30, '1,4', 'true', '1.2');
INSERT INTO `phpwebgallery_categories` VALUES (5, '2005-11-10', 8, 'Loane J8 TousMesAmis', 1, NULL, 'Loane_J8_TousMesAmis', 7, 'private', 1, 'true', 'true', 14, '1,5', 'true', '1.7');
INSERT INTO `phpwebgallery_categories` VALUES (6, '2005-11-10', 4, 'avtHeureH', 1, NULL, 'avtHeureH', 1, 'private', 1, 'true', 'true', 19, '1,6', 'true', '1.1');
INSERT INTO `phpwebgallery_categories` VALUES (7, '2005-11-10', 15, 'Loane J3', 1, NULL, 'Loane_J3', 4, 'private', 1, 'true', 'true', 49, '1,7', 'true', '1.4');
INSERT INTO `phpwebgallery_categories` VALUES (8, '2005-11-10', 8, 'Loane J4', 1, NULL, 'Loane_J4', 5, 'private', 1, 'true', 'true', 66, '1,8', 'true', '1.5');
INSERT INTO `phpwebgallery_categories` VALUES (9, '2005-11-15', 4, 'Loane J12', 1, NULL, 'Loane_J12', 8, 'private', 1, 'true', 'false', 82, '1,9', 'true', '1.8');
Hors ligne
voici la suite :
Structure de la table `phpwebgallery_comments`
--
CREATE TABLE `phpwebgallery_comments` (
`id` int(11) unsigned NOT NULL auto_increment,
`image_id` mediumint(8) unsigned NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`author` varchar(255) collate latin1_general_ci default NULL,
`content` longtext collate latin1_general_ci,
`validated` enum('true','false') collate latin1_general_ci NOT NULL default 'false',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=13 ;
--
-- Contenu de la table `phpwebgallery_comments`
--
INSERT INTO `phpwebgallery_comments` VALUES (1, 11, '2005-11-10 16:32:09', 'cedalex2', 'Elle est vraiment TRES BELLE NOTRE FILLE !!! Ce n'est pas parce que c'est nous qui l'avons faite, mais elle est vraiment très très belllllllleeeeeeee.', 'true');
INSERT INTO `phpwebgallery_comments` VALUES (2, 11, '2005-11-10 19:43:49', 'loane', 'ta tata et tes cousins te regardent ', 'true');
INSERT INTO `phpwebgallery_comments` VALUES (3, 23, '2005-11-11 11:11:33', 'loane', 'le futur papa semble q.q.peu inquiet\r\nla "bientôt" maman attend paisiblement ?', 'true');
INSERT INTO `phpwebgallery_comments` VALUES (4, 1, '2005-11-11 18:51:41', 'loane', 'félicitations aux nouveaux parents, loane est un bb magnifique\r\ngros bisous et continuez à admirer votre chef d'oeuvre\r\nstéphane et ingrid (voisin aillaud)', 'true');
INSERT INTO `phpwebgallery_comments` VALUES ....
Hors ligne
ced a écrit:
--
-- Contenu de la table `phpwebgallery_comments`
--
INSERT INTO `phpwebgallery_comments` VALUES (1, 11, '2005-11-10 16:32:09', 'cedalex2', 'Elle est vraiment TRES BELLE NOTRE FILLE !!! Ce n'est pas parce que c'est nous qui l'avons faite, mais elle est vraiment très très belllllllleeeeeeee.', 'true');
INSERT INTO `phpwebgallery_comments` VALUES (2, 11, '2005-11-10 19:43:49', 'loane', 'ta tata et tes cousins te regardent ', 'true');
INSERT INTO `phpwebgallery_comments` VALUES (3, 23, '2005-11-11 11:11:33', 'loane', 'le futur papa semble q.q.peu inquiet\r\nla "bientôt" maman attend paisiblement ?', 'true');
Voila ce que je voulais, et ce que je vais t'expliquer s'appliquera à tous ces ordres.
VALUES (1, 11, '2005-11-10 16:32:09', 'cedalex2',
le 1: c'est la colonne `id` (numéro d'ordre du commentaire saisi)
le 11: c'est `image_id` (numéro de l'image dans la table `phpwebgallery_images` d'ailleurs il nous faudra le 11ème insert de la table #_images)
le '2005-11-10 16:32:09': c'est `date` (Date et heure de la saisie)
le 'cedalex2': c'est `author` (Le nom de l'utilisateur qui a saisi)
et puis...
'Elle est vraiment TRES BELLE NOTRE FILLE !!! Ce n'est pas parce que c'est nous qui l'avons faite, mais elle est vraiment très très belllllllleeeeeeee.', 'true');
le 'Elle est vraiment TRES BELLE NOTRE FILLE !!! Ce n'est ...' : c'est `content` (le texte du commentaire)
le 'true': c'est `validated` (C'est validé, sauf quand c'est false, dans ce cas c'est "à valider").
Bien, on va prendre notre temps... Je te préviens.
En effet, il y a un petit problème (que j'ai rencontré déjà) avec des commentaires contenant par exemple : "Ce n'est "
L'apostrophe va faire planter, il va falloir changer les "j'ai faim" en "j\'ai faim"... (bug de l'export de phpMyAdmin).
Pas seulement ça:
...très très belllllllleeeeeeee.', 'true');
il faut rajouter la nouvelle colonne:
...très très belllllllleeeeeeee.', 'true', '2005-12-07 20:32:09');
c'est la colonne `validation_date`
Allez -//:---\spam moi le 11ème insert de la table #_images
@ plus... Je passe à table.
Hors ligne
volcom a écrit:
au temps pour moi j'avais pas saisi.
Ce n'est pas grave.
Je suis en mode "opération chirurgicale" et le malade devrait s'en sortir, si le chirurgien fait exactement ce que je lui dit.
A la moindre erreur, plouf. Je ne dépanne plus.
Hors ligne
Je vais laisser VDigital continuer à s'occuper du problème, mais je vais donner un petit conseil qui pourrait vous aider.
- images.storage_category_id pointe vers categories.id
- categories.site_id pointe vers sites.id
- categories.id_uppercat pointe vers categories.id
- comments.image_id pointe vers images.id
L'information à reconstituer pour rendre unique chaque image, c'est le images.path (qui apparaît en 1.5). images.path est la concaténation de
sites.url + categories.dir (niveau 1) + categories.dir (niveau 2)... + images.file.
Une fois que vous avez généré les relations "id de ma photo dans l'ancienne base" correspond à "path", il faut découvrir les id des photos dans la nouvelle base.
Une fois ces id obtenus, il faut modifier les requêtes d'insert de la table comments.
Voilà pour la théorie, je vous souhaite bien du courage pour la pratique :-/
Hors ligne
Mais en fait, on se casse la tête ! Si ced a le dump de sa 1.4.1, qu'il réinstalle sa 1.4.1 et qu'il refasse une migration pardi !
Hors ligne
Bonsoir à tous,
je vois en effet que c'est un peu galère avec l'export de phpMyAdmin, si chaque caractere est code, cela risque d'etre laborieux.
D'apres vos dernieres suggestions, il faudrait tout simplement que je desinstalle tout, reinstalle la version 1.4.1 dans mon nouveau repertoire.
Enfin, je migre mon fichier dump, vous faites comment au fait ? Apres je ne vous embete plus... ou alors, je me recogne les commentaires, finalement cela ira peut etre + vite...
bonne nuit à tous
cedric
Hors ligne
Les idées de z0rglub...
N°1 : "Une fois que vous avez généré les relations "id de ma photo dans l'ancienne base" correspond à "path", il faut découvrir les id des photos dans la nouvelle base."
J'y allais, je l'ai déjà fait pour moi une fois.
N°2 : "Mais en fait, on se casse la tête ! Si ced a le dump de sa 1.4.1, qu'il réinstalle sa 1.4.1 et qu'il refasse une migration pardi !"
Oh! Oui... T'as raison. Sauf qu'on va retomber sur les apostrophes générées par phpMyAdmin et sans l'antislash.
ced a écrit:
je vois en effet que c'est un peu galère avec l'export de phpMyAdmin, si chaque caractere est code, cela risque d'etre laborieux.
On n'a le problème qu'avec l'apostrophe simple. ce n'est pas trop méchant.
ced a écrit:
D'apres vos dernieres suggestions, il faudrait tout simplement que je desinstalle tout, reinstalle la version 1.4.1 dans mon nouveau repertoire.
1 - Dump tes tables de la 1.5. (la totale).
2 - Supprimes les tables de la 1.5
3 - Copies tout le répertoire actuel de la 1.5.
4 - Supprimes tout le répertoire actuel de la 1.5
5 - Install la 1.4.1
6 - Restaures tes tables du dump de la 1.4 (dans phpMyAdmin, il y a une option pour lui faire prendre un fichier en entrée, mais
avant penses mettre les \ aux bons endroits).
7 - Tu migres en 1.5
ced a écrit:
Enfin, je migre mon fichier dump, vous faites comment au fait ? Apres je ne vous embete plus... ou alors, je me recogne les commentaires, finalement cela ira peut etre + vite...
Comment tu migres le dump? dans phpMyAdmin, il y a une option pour lui faire prendre un fichier en entrée.
Apres je ne vous embete plus... Non pas du tout, pour moi on continue.
Allez -//:---\spam moi le 11ème insert de la table #_images
Hors ligne