Closed ghost closed 8 years ago
Quand tu dis une seule catégorie, tu veux dire un seul sous forum récupéré ? Tu as moins de messages qu'attendu ?
Quel est le problème avec le fichier save.pickle ?
Depuis hier j'ai avancé. Le problème venait d'une iterruption de l'import à cause d'un duplica de clé primaire.
Mon phpbb.sql a été importé complétement en utilisant le mode console MySQL (en utilisant phpmyadmin, ca part en time out malgré les modifs dans les php.ini) . Mais je perds ainsi les accents bien que la console soit en utf8.
Maintenant, je n'ai que les 4 premières catégories au lieu des 12 de mon forum. J'imagine que le reste est dans le save.pickle dont je ne sais que faire . Voila mon problème avec ce fichier. Qu'en faire ?
Après vérification du fichier phpbb.sql, les catégories (sous forums) manquantes ne s'y trouvent pas. Donc, même si le script semble tourner correctement, il manque des catégories. Elles sont peut être dans le pickle, mais je n'en sais rien. J'ai donc beaucoup moins de message qu'attendu effectivement.
Encore quelques heures de recherches.
J'ai omis de préciser le message d'erreur à la fin de l'exécution du script. File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0]. Même problème que mamottin. Le script semble s'arrêter là et génère le fichier sql, mais n'est pas allé au bout de l'export.
Le script fonctionne bien mais ne peut aller au bout à cause de ces sacrés problèmes d'encodage. C'est une vraie galère.
J'ai remodifié l'encodage de ma console pour passer en chcp 1252 au lieu d'utf8 (chcp 65001). On va voir ce que cela donne.
Reste la présence du fichier pickle. Je pense que mon manque d'expérience sur Python explique pourquoi je ne sais pas quoi en faire. Si tu as une idée ... je suis en version 3.4.3. Peut-être devrais(je passer à la dernière version, maintenant que j'ai compris comment installer correctement tous les composants.
Souvent je me dis qu'il va falloir que je monte une machine virtuelle en linux sur mon windows 10. Je bloque cependant sur la distrib à utiliser. Je pense que cela réglerait pas mal de souci de dev.
J'ai beau chercher, je ne comprends pas pourquoi il y a un appel au cp1252.py qui semble un tout petit peu perdu avec les accents.
Je vais passer sur la dernière version de python. Sait-on jamais !
J'avais eu un problème de ce style, il y a plus d'un an quand j'avais essayé une extraction. Le problème était qu'un caractère spécial était présent dans un des posts du forum, que le script n'arrivait pas à extraire. Je m'en suis sorti en supprimant/modifiant le caractère spécial dans le post d'origine du forum. (Je me suis dit que c'était pas bien grave si je perdais un caractère, voire un post, sur les 100000 messages que le forum contient) Si ton problème est le même que le mien, tu peux savoir quel est le message ou en tout cas le topic en regardant les logs.
Merci de cette réponse.
Je suis parti sur cette même réflexion en éditant le cp1252.py.
J'ai quelques message en russe, donc en caractères cyrilliques. Pour le moment, j'en ai trouvé un que j'ai viré.
Merci du conseil. Je vais regarder les logs. Heureusement, je suis toujours en mode verbeux.
Merci encore.
Je reviens poster dés que j'ai un résultat.
J'ai identifié le message qui posait problème et l'ai supprimé. Mais c'était en fait une catégorie entière qui posait souci. Je l'ai supprimé également.
Maintenant, cela bloque sur "L'adresse email de l'utilisateur xxx n'a pas pu être exportée." mais toujours avec le même message d'erreur cp1252.py, line 19. Très frustrant, surtout que le fichier SQL est tronqué. Mais j'ai l'impression que c'est lié au format de la date qui est correct au niveau forum (je l'ai corrigé au début de mes exports) mais il est différent pour les comptes users. Je ne sais pas si ça joue. Mais dans ce cas, va falloir que je me les tape un par un pour changer le format de date. Au niveau forum il est comme voulu : "jour J mois AAAA - HH:MM" Pour les comptes, "J mois AAAA - HH:MM", ainsi que cela avait été défini pour le forum à sa création.
Je continue mes investigations.
J'ai toujours une question: n'étant pas un dev en python (ou en autre language d'ailleurs) mais un scripteur (PowerShell etc.. et oui Microsoft), je me demande toujours comment utiliser le fichier save.pickle qui contient quand même pas mal d'info qui ne dont pas dans le fichier SQL. J'ai cherché (je cherche toujours un bon moment avant de poser la question) mais quand je "depickle" le fichier, j'ai un truc de quelques caractères qui ne veut rien dire.(
Finalement, toujours les même erreurs que je ne sais pas corriger, mais qui ont toute rapport à l'écriture dans le fichier sql
Traceback (most recent call last):
File "lalf.py", line 22, in
Bon. Après avoir fait quelques recherches, j'ai fait ce qui ne doit jamais être fait. J'ai fait une sauvegarde du fichier cp1252.py puis supprimé l'original, j'ai copié le fichier utf-8.py et ai renommé cette copie en cp1252.py. Je sais que ce n'est pas pur, que ce n'est pas bien, mais c'est la seule solution, pour moi. Et cela fonctionne.
Plus de message d'erreur et un fichier SQL conséquent. Et complet.
Il faut quand même préciser qu'il y a toujours des problèmes d'index et de clé primaire lors de l'importation dans la nouvelle base MySQL. Pour y remédier, j'ai remplacé dans le fichier SQL, encodé en utf8, toutes les entrées "INSERT INTO" en "INSERT IGNORE INTO". Et bingo !
J'ai récupéré l'intégralité de mon forum ainsi que tous ses membres, etc... merci encore pour ce LALF!
L'important, c'est que ça fonctionne ! Aurais-tu une idée de comment améliorer le script en ce sens ? En tout cas, merci du feedback, ça sera utile si d'autres l'utilisent par la suite (dont moi).
Je pense qu'il y a très peu de changement à faire au niveau des lignes 79 et 82 du node.py et des autres lignes des deux autres fichiers pour forcer un encodage correct dans l'appel du dump dans le save.picke. Je vais de toute façon continuer à regarder, mais il y a clairement une toute petite chose à faire. Il faut que je retrouve le post sur stackoverflow qui parle de ça à propos du lalf et du base64_codec (retrouvé ici: https://github.com/Roromis/Lalf-Forumactif/issues/37). Je pense que c'est du même acabit.
Maintenant, il reste quand même pas mal de taf a faire après l'import dans la nouvelle base. Une fois que tout est réindexé, je me rends compte que tout ce qui est annonce, note et annonce globale est passé en normal. Pas grave en soi. L'important et d'avoir récupéré les datas. Le LALF permet de faire ça et c'est vraiment pas mal du tout. Après, on met les mains dedans et on essaie de trouver une solution ou un contournement.
Bonjour,
désolé pour mon manque de réactivité, je n'ai plus vraiment de raisons de maintenir ce script, et faire des tests me prends toujours beaucoup de temps...
Je pense que les modifications de @jeancf (PR #39) devraient corriger tes problèmes (le bug initial, ainsi que la gestion des annonces). Je suis en train de tester ça, je vous donne des nouvelles d'ici demain.
Salut Roromis.
J'ai travaillé avec la version de @jeancf, ainsi qu'avec la version initiale et ce sont toujours les mêmes erreurs. Je ne sais pas pourquoi. J'ai éliminé les éléments les plus évidents (des message en russe avec du cyrillique par exemple) mais ca ne suffit pas. Je pense que le souci est lié encore à une modification de FA sur sa BdD, peut-être.
Maintenant, je ne sais pas si la disparition des tags annonce etc. est normale mais, encore une fois, ce n'est pas grave pour moi. Le LALF existe et ce, grâce à toi. Nous pouvons aussi regarder ce qui bloque pour apporter notre contribution. Après tout, plusieurs yeux valent mieux que deux même si je n'ai pas tes compétences en Python.
Je n'arrive pas à reproduire ton erreur, même avec des messages avec des lettres cyrilliques.
J'ai travaillé avec la version de jeancf
Qu'as-tu testé exactement? Les modifications qu'il a proposé dans la pull-request #39 ou seulement celle de l'issue #37?
La 37. Je viens de récupérer la 39. Je regarde ça.
Merci
Utilise plutôt la dernière version que j'ai publié (https://github.com/Roromis/Lalf-Forumactif/tree/v3), j'ai reporté ses modifications et j'ai fais quelques corrections.
Je viens de récupérer ta version que j'utiliserai très bientôt. J'a utilisé la 39 ce matin. Pas de souci avec les tag annonces etc...
Il me reste à attendre le go de mon hébergeur (qui a une liste d'attente) et je fige mon forum actuel pour éviter toute perte de donnée. Et go pour la migration définitive.
Salut. J'utilise la version 3 avec python 3.4. La phase d'exportation se base apparemment correctement. Et va au bout.
Je récupère cependant un fichier phpbb.sql ET un fichier save.pickle contenant des données cryptées et des messages et mails... Je ne sais pas quoi en faire.
Toutefois, bien que je sois en UTF8 partout, lorsque j'importe mon fichier sql (WampServer), je me retrouve avec une seule catégorie tronquée quand il y a des accents et des messages vides.
Je pense à un problème de collation, mais j'ai tout essayé et je désespère.