Yahoo Groups mbox のインポートを進めていますが、いくつかのエラーが発生しています。現時点でデバッグとインポートについてどの方向に進むべきか確信が持てません。ここまでに確認できたエラーは以下の通りです:
https://pastebin.com/raw/2WTN3GTj
mbox スクリプトを使っていますよね?私の場合は問題なく動作しました。添付ファイルは欠落していますが、私の場合、致命的な問題ではありません。
その通りです、@tobiaseigen。インポート処理は2時間以上実行されました。
最後の質問に加えて、これらのエラーが発生している状況でインポートを続行すべきか迷っていたことを付け加えたいと思います。エラー/失敗が修正された後、再度インポートを実行すれば、すでにインポート済みのメッセージはスキップされ、正常なインポート処理が継続されるかどうかをお聞きしたいです。
Sidekiq がここに関連しているかどうかはわかりません。インポートスクリプトは Discourse の外で実行されていると思います。
参考までに、私のインポートログを共有します。実際、あなたと似た行がいくつかありますが、気にしないことにしました。人生は短いですから。
エラーがこれほど多い場合、より体系的な問題を抱えているようです。システムに十分なメモリが確保されていることは確実ですか?すでに試したかもしれませんが、インポートファイルをもう少し詳しく調べて、何か手がかりがないか確認してみてください。もしかすると split_regex を何らかの方法で調整する必要があるか、ファイルを別の形式でサーバーにアップロードする必要があるかもしれません。
もし引き続き問題が発生する場合は、Marketplace チャンネルで助けを求めてみてください。そこにはインポートに非常に詳しいコンサルタントがいくつかいます。私はもちろん専門家ではありません。これは私の初めての試みでした。![]()
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
mbox のインポートを開始します...
既存のグループを読み込み中...
既存のユーザーを読み込み中...
既存のカテゴリを読み込み中...
既存の投稿を読み込み中...
既存のトピックを読み込み中...
インデックス作成中
/shared/import/data/list 内のファイルをインデックス作成中
/shared/import/data/list/18929486-3.mbox をインデックス作成中
/shared/import/data/list/18929486-2.mbox をインデックス作成中
返信とユーザーのインデックス作成中
カテゴリ作成中
1 / 1 (100.0%) [4916421 件/分]
ユーザー作成中
69 / 69 (100.0%) [1178 件/分] ]
トピックと投稿の作成中
日付がありません。0462b41b966d8c11e6e32cc14c0b576d をスキップ
1 / 2333 ( 0.0%) [179689 件/分] 日付がありません。0adb9bd80082595a33130f7749d7f530 をスキップ
2 / 2333 ( 0.1%) [224693 件/分] 日付がありません。3bd86d7adb396fbeb7d6dfcfe9f0be5f をスキップ
3 / 2333 ( 0.1%) [283328 件/分] 日付がありません。4f5397838e6c7f96eedfe116ce27be13 をスキップ
4 / 2333 ( 0.2%) [184374 件/分] 日付がありません。c8c14ab80e92ae1cacd4af99351319bd をスキップ
45 / 2333 ( 1.9%) [334 件/分] 2f401ce90708241252h30bdae5iad2ae0096e067b71@mail.gmail.com の投稿のマッピングに失敗
undefined method `hex' for 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 件/分] BBCAF42471FF9540868B4DC02B885B1BBCDA1F@wn1217.or.providence.org の投稿のマッピングに失敗
undefined method `hex' for 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 件/分] 3A1D6C799D451B41BD0500303339622A023AA1@s-mail.integral-corp.com の投稿のマッピングに失敗
undefined method `hex' for 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 件/分] FF35EE5B30156244A4370DC859B7F650F50626@s-mail.integral-corp.com の投稿のマッピングに失敗
undefined method `hex' for 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 件/分]
トピックの状態を更新中
トピックの bumped_at を更新中
ユーザーの last posted at を更新中
ユーザーの last seen at を更新中
トピックの返信数を更新中...
70 / 70 (100.0%) [10745 件/分]
first_post_created_at を更新中...
ユーザーの post_count を更新中...
ユーザーの topic_count を更新中...
トピックのユーザーを更新中
投稿のタイミングを更新中
注目トピックのユーザーを更新中
カテゴリ内の注目トピックを更新中
9 / 9 (100.0%) [2505 件/分] n]
ユーザーのトピック返信数を更新中
70 / 70 (100.0%) [9174 件/分] ]
トピックのカウントをリセット中
完了 (00 時間 06 分 58 秒)
したがって、私はこの処理を先に進めることにしました(エラーは後で確認します)。しかし、今非常に奇妙な現象が発生しています。まず、システム内に「old-yahoo-group」というカテゴリを作成し、その後、すべての mbox フォルダを以下のディレクトリに押し込みました。
/var/discourse/shared/standalone/import/data/old-yahoo-group
インポート時にこれらのメッセージが適切なカテゴリに表示されると理解していたのですが、実際にはシステム内ですべて隠れてしまっています。
検索機能を使えば古いメッセージを見つけることは問題なくできますが、集約された場所には表示されません。
この最後のインポートを、約 35,000 件のメッセージが「古いメッセージ」であることを示す便利なセクションにすべて表示されるように、定義済みのカテゴリへどうやって移動させればよいでしょうか?
さらに調べてみると、何が起こったか分かりました:
さて、ここからどう回復するかを考えなければなりません…
以下の手順は完璧に機能しました(old-yahoo-group はすでに作成されており、それ以外に未分類の投稿が存在せず、設定で実際には無効化されていた場合):
/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)
余談ですが、私も同様の経験があります。何らかの理由で、スラッグが同じだったにもかかわらず、インポートスクリプトが私が作成した既存のカテゴリを無視していました。しかし、スクリプトが新しいカテゴリを作成してくれたので問題はありませんでした。私が作成したカテゴリを削除し、スクリプトが作成したカテゴリの名前を変更しました。