Je travaille sur une importation mbox depuis Yahoo Groups et je rencontre quelques erreurs. Je ne suis pas sûr de la marche à suivre pour le débogage et l’importation. Voici les erreurs que j’ai constatées jusqu’à présent :
https://pastebin.com/raw/2WTN3GTj
Vous utilisez bien le script mbox, n’est-ce pas ? Cela a très bien fonctionné pour moi sans aucune erreur. Les pièces jointes sont manquantes, mais ce n’est pas la fin du monde dans mon cas.
C’est exact, @tobiaseigen. L’importation a duré plus de 2 heures.
En plus de ma dernière question, je voulais préciser que je ne savais pas si je devais poursuivre l’importation malgré ces échecs… Je me demande, une fois les erreurs/échecs corrigés, si nous pouvons simplement réimporter ces éléments : le système devrait ignorer les messages déjà importés et poursuivre l’importation correctement.
@gerhard, nous aurions peut-être besoin de votre avis et de votre aide ici… Même après avoir suivi votre guide, Sidekiq n’affiche pas le traitement de ces ~35 000 messages.
Je ne suis pas sûr que Sidekiq soit pertinent ici — je pense que le script d’importation s’exécute en dehors de Discourse.
Au cas où cela pourrait aider, voici mon journal d’importation. Il y a en effet quelques lignes similaires aux vôtres, mais j’ai simplement décidé de ne pas m’en soucier. La vie est trop courte.
Puisque vous avez autant d’erreurs, vous semblez avoir un problème plus systématique. Êtes-vous certain que le système dispose de suffisamment de RAM ? Je ne sais pas si vous l’avez déjà essayé, mais vous voudrez peut-être examiner le fichier d’importation un peu plus attentivement et essayer d’identifier s’il y a quelque chose que vous pouvez trouver — peut-être devez-vous simplement ajuster le split_regex d’une certaine manière, ou télécharger le fichier sur votre serveur dans un format différent ?
Si vous continuez à avoir des problèmes, vous pourriez demander de l’aide dans Marketplace — il y a des consultants qui traînent ici et qui sont très expérimentés dans la réalisation d’importations. Je ne suis certainement pas un expert — c’était ma première tentative. ![]()
root@discourse:/var/discourse# ./launcher enter import
root@discourse-import:/var/www/discourse# RAILS_DB=secondsite
root@discourse-import:/var/www/discourse# export RAILS_DB
root@discourse-import:/var/www/discourse# import_mbox.sh
L'importation mbox commence...
Chargement des groupes existants...
Chargement des utilisateurs existants...
Chargement des catégories existantes...
Chargement des publications existantes...
Chargement des sujets existants...
création de l'index
indexation des fichiers dans /shared/import/data/list
indexation de /shared/import/data/list/18929486-3.mbox
indexation de /shared/import/data/list/18929486-2.mbox
indexation des réponses et des utilisateurs
création des catégories
1 / 1 (100.0%) [4916421 éléments/min]
création des utilisateurs
69 / 69 (100.0%) [1178 éléments/min] ]
création des sujets et des publications
La date est manquante. Ignorance de 0462b41b966d8c11e6e32cc14c0b576d
1 / 2333 ( 0.0%) [179689 éléments/min] La date est manquante. Ignorance de 0adb9bd80082595a33130f7749d7f530
2 / 2333 ( 0.1%) [224693 éléments/min] La date est manquante. Ignorance de 3bd86d7adb396fbeb7d6dfcfe9f0be5f
3 / 2333 ( 0.1%) [283328 éléments/min] La date est manquante. Ignorance de 4f5397838e6c7f96eedfe116ce27be13
4 / 2333 ( 0.2%) [184374 éléments/min] La date est manquante. Ignorance de c8c14ab80e92ae1cacd4af99351319bd
45 / 2333 ( 1.9%) [334 éléments/min] Échec de la correspondance de la publication pour 2f401ce90708241252h30bdae5iad2ae0096e067b71@mail.gmail.com
méthode non définie `hex' pour nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:145:in `map_first_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:103:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
940 / 2333 ( 40.3%) [398 éléments/min] Échec de la correspondance de la publication pour BBCAF42471FF9540868B4DC02B885B1BBCDA1F@wn1217.or.providence.org
méthode non définie `hex' pour nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
944 / 2333 ( 40.5%) [399 éléments/min] Échec de la correspondance de la publication pour 3A1D6C799D451B41BD0500303339622A023AA1@s-mail.integral-corp.com
méthode non définie `hex' pour nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
1149 / 2333 ( 49.2%) [408 éléments/min] Échec de la correspondance de la publication pour FF35EE5B30156244A4370DC859B7F650F50626@s-mail.integral-corp.com
méthode non définie `hex' pour nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
2328 / 2333 ( 99.8%) [467 éléments/min]
Mise à jour du statut des sujets
Mise à jour de bumped_at sur les sujets
Mise à jour de last posted at sur les utilisateurs
Mise à jour de last seen at sur les utilisateurs
Mise à jour des comptes de réponses des sujets...
70 / 70 (100.0%) [10745 éléments/min]
Mise à jour de first_post_created_at...
Mise à jour du post_count des utilisateurs...
Mise à jour du topic_count des utilisateurs...
Mise à jour des utilisateurs des sujets
Mise à jour des délais des publications
Mise à jour des utilisateurs des sujets en vedette
Mise à jour des sujets en vedette dans les catégories
9 / 9 (100.0%) [2505 éléments/min] n]
Mise à jour des comptes de réponses des sujets par utilisateur
70 / 70 (100.0%) [9174 éléments/min] ]
Réinitialisation des compteurs de sujets
Terminé (00h 06min 58sec)
J’ai donc décidé de laisser cela se poursuivre (je regarderai les erreurs plus tard), mais j’ai maintenant une très grande particularité. J’avais tenté d’importer ces éléments dans un dossier nommé “old-yahoo-group” en créant d’abord cette CATÉGORIE dans le système, puis en déplaçant tous les dossiers mbox vers un dossier ici :
/var/discourse/shared/standalone/import/data/old-yahoo-group
Je pensais avoir compris les instructions de manière à ce que ces messages, une fois importés, apparaissent dans la catégorie appropriée, mais ils sont tous cachés dans le système.
Je peux effectuer une recherche et retrouver d’anciens messages sans problème, mais ils n’apparaissent dans aucun emplacement agrégé.
Comment puis-je manipuler cette dernière importation pour qu’elle aille dans une catégorie définie, de sorte que tous les ~35 000 messages apparaissent dans une section pratique indiquant qu’il s’agit d’anciens messages ?
En examinant de plus près, il semble que j’aie trouvé ce qui s’est passé :
Maintenant, je dois trouver comment récupérer de cette situation…
Cela a donc fonctionné parfaitement (où old-yahoo-group avait déjà été créé et où AUCUN autre message non catégorisé n’existait (et il était en fait désactivé dans les Paramètres)) :
/var/discourse/launcher enter app
rails c
un=Category.find_by_slug('uncategorized')
newcat=Category.find_by_slug('old-yahoo-group')
Topic.where(category_id: un.id).update_all(category_id: newcat.id)
Par ailleurs, j’ai eu une expérience similaire. Pour une raison quelconque, le script d’importation a ignoré la catégorie existante que j’avais créée, même si l’identifiant (slug) était le même. Mais il a créé une nouvelle catégorie pour moi, donc je n’ai eu aucun problème. J’ai simplement supprimé la catégorie que j’avais créée et renommé celle créée par le script.