Je suppose que je n’aurais pas dû cacher cette question dans un autre message.
@gerhard, comment les différentes balises BBCode sont-elles actuellement traitées différemment ? Est-ce dû à une erreur ou est-ce intentionnel ?
Je suppose que je n’aurais pas dû cacher cette question dans un autre message.
@gerhard, comment les différentes balises BBCode sont-elles actuellement traitées différemment ? Est-ce dû à une erreur ou est-ce intentionnel ?
Quel taux d’importation de messages par minute avez-vous obtenu avec des machines plus puissantes ? J’exécute actuellement l’importation sur un Xeon 8 cœurs, et la machine semble plutôt inoccupée alors que le taux ne dépasse pas significativement 1000 messages/min.
C’est sur un SSD NVMe rapide, donc je suppose que ce n’est pas les E/S qui constituent la limite. Avez-vous des idées pour améliorer encore la vitesse ? Je cherche à gagner quelques pourcents afin de réduire le temps total d’importation d’une heure ou deux (actuellement environ 14 heures).
Bonjour, j’ai un petit problème… J’ai importé et converti environ 100 000 publications, puis j’ai découvert que j’avais oublié de configurer correctement les liens de redirection (en plus de ne pas avoir lié les smileys aux émojis dans settings.yml…). Existe-t-il un moyen de tout réimporter afin que les liens soient analysés correctement, sans modifier le reste de ce que j’ai déjà configuré ?
Si je relance le script, pensera-t-il simplement que l’importation a déjà eu lieu et ne fera-t-il rien, ou bien ?
D’après ce que j’ai vu, ce n’est malheureusement pas possible. Cela fera ce que vous avez dit : ignorer les publications déjà importées.
Y a-t-il un moyen de faire en sorte qu’il oublie temporairement les publications importées et de les réimporter ?
(Pas de façon permanente, car je souhaite ajouter des publications plus tard)
Ce n’est probablement pas intentionnel ; la conversion des BBCode en Markdown n’est pas encore parfaite.
Cela semble correct, à moins que vous ne puissiez trouver un processeur avec une vitesse monocœur plus élevée.
Avez-vous une sauvegarde datant d’avant le début de l’importation ? Vous pourriez la restaurer et relancer l’importation. Sinon, vous n’avez pas de chance et devrez tout recommencer depuis le début.
C’est regrettable. Cela s’applique-t-il également aux émoticônes ?
Par « recommencer depuis le début », voulez-vous dire réinstaller Discourse ?
Je suis désolé de le dire, mais il serait vraiment difficile et sujet aux erreurs de tenter de corriger les émoticônes après l’importation. Je ne peux pas vous aider si vous choisissez cette voie.
Oui, essentiellement. Vous pouvez sauter quelques étapes en supprimant toutes les données et en reconstruisant le conteneur.
./launcher stop app
rm -rf /var/discourse/shared/
./launcher rebuild app
Merci !
Vous voulez dire qu’avec ces deux commandes, le forum sera prêt à être importé ? Aucune autre étape à suivre ? (Qu’en est-il des thèmes, des récompenses, des groupes et de tout le reste qui a été configuré ? Y a-t-il un moyen de sauvegarder ces éléments ? (Pour les thèmes, je sais comment les sauvegarder et les importer, mais pour les autres paramètres…)) (trop de parenthèses)
Je suis surtout ravi d’avoir découvert cela maintenant plutôt qu’au milieu de la migration, alors que tout est à l’arrêt, ce qui prend du temps à réparer. Mais j’aimerais éviter de refaire le plus de travail possible…
Oui, sans sauvegarde, vous devez refaire ces choses manuellement.
Si ce n’est pas clair, cela efface toute la base de données et vous repartez de zéro.
Il existe plusieurs façons de sauvegarder et de restaurer les paramètres si vous cherchez.
Mais comme suggéré, vous voudrez vraiment soit les faire après l’importation, soit tout faire et créer une sauvegarde que vous utiliserez comme point de départ avant l’importation.
Bonjour Helmi,
Un ami qui travaille sur le développement d’un plugin BB code personnalisé a découvert un bug dans l’importateur, qui empêchait les balises de couleur d’être correctement affichées.
Pour reprendre ses termes :
Les balises de couleur sont intentionnellement supprimées des messages. Le bug du convertisseur ne réside PAS dans le fait qu’il ne supprime que les balises de fermeture. Le « bug » est qu’il NE supprime PAS les balises de couleur pour les noms de couleurs.
Preuve :
https://github.com/discourse/discourse/blob/master/script/import_scripts/ph pbb3/support/text_processor.rb
def clean_bbcodes(text)
# De nombreuses balises BBcode phpbb ont un hachage attaché. Exemples :
# [url=https://google.com:1qh1i7ky]cliquez ici[/url:1qh1i7ky]
# [quote="cybereality":b0wtlzex]Quelque texte.[/quote:b0wtlzex]
text.gsub!(/:(?:\w{8})\]/, ']')
# supprimer les balises de couleur
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
end
La dernière partie text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "") est une expression régulière qui capture les balises de couleur avec des codes hachés et les balises de fermeture de couleur, mais pas les balises de couleur avec des noms de couleurs (comme color=green, etc.).
Solution : Supprimer la ligne.
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
Nous ne voulons pas réellement cela. Nous souhaitons conserver ces données de couleur, quelle que soit la manière dont nous décidons de les afficher. (Bon, pour notre forum, c’est la solution. Pour Discourse, vous ferez probablement en sorte que toutes les balises de couleur soient supprimées, pas seulement celles avec des noms de couleurs.)
Salut Gerhard, donc après avoir suivi tes instructions (d’abord j’ai supprimé, puis j’ai refait beaucoup de travail, ensuite j’ai fait une sauvegarde et enfin j’ai effectué une importation. Seulement pour constater à mi-parcours que j’avais fait une erreur, j’ai donc arrêté l’importation et j’ai dû repartir de zéro (puisque des données avaient déjà été importées).
Donc, j’ai tout supprimé à nouveau.
Après avoir reconstruit l’application afin de pouvoir restaurer ma sauvegarde puis effectuer l’importation, le site refuse de se connecter.
Lorsque j’exécute Discourse Doctor, il indique : Version de Discourse à [domaine] NON TROUVÉE. À localhost non trouvée. Aucune autre erreur.
Que dois-je faire ?
Vous n’aviez pas besoin de reconstruire, seulement de restaurer la sauvegarde.
Je suppose que vous devez exécuter :
./launcher start import
Discourse-doctor ne connaît pas le conteneur d’importation.
Vous devrez peut-être reconstruire l’application et l’importation, car elles doivent être de la même version.
J’ai reconstruit l’import, reconstruit l’application, et la connexion est toujours refusée. ![]()
Vous devez à nouveau ajouter le dump de la base de données et les fichiers de phpBB. Vous les avez probablement supprimés lors de la réinitialisation.
Oui, je les ai supprimés. Mais ne devrais-je pas d’abord restaurer mes données ? J’avais configuré beaucoup de choses avant l’importation pour éviter de devoir tout refaire si je devais réimporter. N’importe-t-il pas maintenant dans une instance Discourse vierge ?
Ensuite, vous restaurerez votre sauvegarde qui devrait se trouver dans /var/discourse/shared/backups/default
Et me revoilà, désolé, mais j’ai maintenant un autre problème…
Cette fois, il s’agit des smilies ! J’ai défini chaque smiley dans settings.yml comme ceci :
happy: [‘:D’,‘:-D’]
woo: ‘:woo:’
etc.
J’ai placé les images des smilies dans le répertoire /var/discourse/shared/standalone/import/images/smilies.
Lors de l’importation, je n’ai vu aucune erreur indiquant que les smilies n’étaient pas trouvés ou quelque chose de similaire.
Pourtant, les smilies n’ont pas été mappés aux emojis, et dans les messages, ils ont été convertis en images.
Qu’ai-je fait de mal ?
Merci encore pour votre aide et vos éclaircissements !
edit :
bien sûr… je dois les mapper depuis phpbb3 et non phpbb2…
Je pense que cela résout le problème, mais je dois quand même tester si c’était bien la cause.
edit2 : J’ai effectué un nouvel import avec un nouveau dump de base de données phpbb3 contenant les smilies insérés. Toujours pas de smilies. Ils ont été convertis en images et ne figurent pas dans l’ensemble des emojis. Quel pourrait être le problème ?
J’ai enfin réussi à mapper les smileys sur les emojis.
Étant donné que j’ai beaucoup buté avec plus de 150 smileys personnalisés, qui avaient tous des noms d’image et des codes de smiley différents, voici un tutoriel étendu pour les autres dans mon cas.
Comprendre ce que fait l’importateur avec les smileys
Ce que je pensais, c’est que lorsque vous ajoutez les codes de smiley dans l’importateur et placez les images dans le fichier d’image désigné, elles seraient automatiquement ajoutées au dossier emojis. Ce n’est pas le cas. Vous devrez donc importer manuellement vos images de smiley dans les emojis.
Lors de l’importation, elles doivent porter le nom du code de smiley que vous utiliserez réellement. Par exemple, si vous aviez un smiley dont le nom de fichier de l’image est “cheery_icon0.gif” et qui s’affiche lorsque les utilisateurs tapent :cheer:, vous devrez renommer cette image en cheer.gif et la télécharger dans les emojis (dans admin cp > personnaliser > emojis).
Maintenant, cela devient encore plus intéressant lorsque vous avez une série de smileys qui, dans phpbb, s’affichent avec des choses comme :
<:-)
%-)
:3
Par exemple, j’avais un smiley :
code : <:-) et nommé "_1partyguyhat.gif"
J’ai d’abord dû décider quel serait le nouveau code dans Discourse, car on ne peut pas nommer des fichiers avec ‘<:-)’. Ensuite, j’ai renommé le gif en ce code, puis ajouté le mappage correspondant dans le fichier de paramètres.
Pour moi, pour ce smiley particulier, c’était :
party_hat: '<:-)'
Ce qui se passe ensuite lors de l’importation, c’est que toutes les instances dans un message où quelqu’un a tapé <
sont traduites en :party_hat:.
L’emoji party-hat sera alors utilisé pour rendre le smiley lorsqu’il est disponible dans les emojis.
Conseils lorsque vous avez 120 smileys à convertir ![]()
Dépannage du fichier settings.yml
emojis. (Je l’avais totalement manquée)."yes": ':yes:' pour coder cet emoji particulier.J’espère que cela a aidé quelqu’un. Je sais que j’ai passé presque deux semaines sur cela avant de finalement tout importer correctement.