XenForoからDiscourseへ移行:移行の概要

Discourse へのコミュニティ (techenclave.com) の移行が完了しました。

投稿数: 250万
ユーザー数: 79K (アクティブおよび禁止ユーザーを含む)
ダイレクトメッセージ数: 70万

20年の歴史を持つコミュニティであり、Proboards、Vbulletin、IPB、XenForo、そして現在の Discourse へと、数多くの移行を経験してきました。

移行作業には4日間かかりましたが、その前には4週間の移行準備と、さらにその前に4週間のカスタムプラグイン開発が必要でした。

ご協力いただいた皆様、そして行き詰まった際に導いてくださった皆様、本当にありがとうございました。:folded_hands:
全体として、有用なデータがほとんど失われることなく、非常に成功した移行となりました。


移行の中核は、強化された XenForo インポートスクリプトに基づいており、標準的なベースを大幅に改善しました。また、特定のデータ変換を処理し、インポート後のデータ整合性を確保するために、いくつかの専門的なサポートスクリプトも活用しました。

メイン XenForo インポートスクリプトにおける主な強化点

パフォーマンス最適化 (Keyset Pagination): 最も重要な強化点は、keyset pagination (WHERE id > last_id) の採用です。この方法は、インデックス付きの主キーを使用して次のレコードセットを取得することで、特に大規模なデータセットにおいて、従来の OFFSET クエリと比較してバッチ処理速度を劇的に向上させます。

堅牢なチェックポインティングと再開機能: ユーザー、トピック、返信、ダイレクトメッセージに対して高度なチェックポインティングロジック (.json ファイルを使用) が実装されました。これにより、インポートプロセスは、中断 (サーバーの再起動、スクリプトのエラーなど) の後、最後に正常にインポートされたレコードから安全に再開でき、大幅な時間を節約できます。

2パス投稿インポート戦略: 投稿は現在、2つの異なるパスでインポートされます。

まずトピック: すべての元の XenForo スレッド (最初の投稿) がインポートされ、親トピックが返信の前に存在することを保証します。

次に返信: スレッド内の後続の投稿がインポートされ、新しく作成された Discourse トピックに正しくリンクされます。この構造化されたアプローチにより、孤立した返信が最小限に抑えられ、データの整合性が向上します。

包括的なリアクション/いいねのインポート:
スクリプトは現在、XenForo のリアクションと Discourse のコア「いいね」(ハート) を直接マッピングするものと、カスタムリアクションをインテリジェントに区別します。
コアいいね (post_actions テーブルにインポート) とカスタムリアクション (discourse-reactions プラグインを活用) の両方のバルク挿入をサポートし、プロセスを大幅にスピードアップします。
XenForo の絵文字ショートコードと Discourse の同等物 (例: thumbsup から +1、heart_eyes から heart) のマッピングが含まれています。

マーケットプレイスデータの充実したインポート (カスタムプラグイン):
XenForo の thread_field_value テーブルから、詳細なマーケットプレイス出品データ (価格、場所、状態、保証、支払いオプションなど) をインポートするための専用セクションが追加されました。
このデータは、カスタム TecencMarket::Listing モデルおよびトピックカスタムフィールドとして保存され、Discourse でよりリッチな表示と機能を実現します。

マーケットプレイスフィードバックのインポート (カスタムプラグイン):
マーケットプレイス取引に関連付けられたユーザーフィードバック/評価 (いいね/わるいね) を移行するための新しい関数が導入されました。

スレッドプレフィックスからタグへの変換: スクリプトは現在、XenForo のスレッドプレフィックスを Discourse タグに自動的に変換します。これは、コンテンツの整理と発見可能性を維持するために重要であり、discourse-tagging プラグインを使用します。また、XenForo の phrase テーブルを使用して、プレフィックス ID を人間が読めるタイトルに正しくマッピングします。

投稿コンテンツ処理の強化: この方法は、Markdown 変換と XenForo の複雑な BBCode の処理を改善するために大幅な更新を受けました。

引用処理の改善: XenForo の [QUOTE] タグの変換。引用されたユーザーの処理や、可能な場合の特定の Discourse 投稿/トピックへのリンクが含まれます。

メディア埋め込みの修正: すべてのインポートされたメディア (YouTube、Twitter/X) が別々の行に配置され、Discourse の oneboxing/埋め込み機能が有効になるようにし、古い BBCode [MEDIA] タグを標準 URL に変換します。

テーブル変換: XenForo の [TABLE] BBCode を Markdown テーブルに変換します。

添付ファイルの処理 (インラインおよび追加): 添付ファイル処理ロジックがリファクタリングされました。現在、[ATTACH] タグをアップロードされたファイルに対応する Markdown に置き換えようとします。特に重要なのは、投稿コンテンツ内で明示的に [ATTACH] タグ付けされなかった添付ファイルは、明確な「添付ファイル:」ヘッダーの下に投稿の末尾に追加され、ファイルが失われることがないようにします。

絵文字/スマイリー変換: XenForo のスマイリーとネイティブ Discourse 絵文字のマッピングが拡張され、視覚的な一貫性が向上しました。

一般的な BBCode クリーンアップ: さまざまな BBCode タグ (例: [B]、[I]、[URL]、[IMG]、[LIST]、[CODE]、[COLOR]、[FONT]、[SIZE]、[INDENT]、[USER]) のより包括的な削除と変換。

文字エンコーディングとクリーニング: 無効な UTF-8 シーケンスに対する .scrub! と、適切な HTML エンティティデコードのための CGI.unescapeHTML が含まれています。

停止中のユーザー処理: 禁止された XenForo ユーザーは、Discourse の停止中のユーザーとしてインポートされ、アカウントは保持されますがアクティビティは制限され、禁止理由はカスタムフィールドに保存されます。

ブックマークのインポート: XenForo から Discourse へのすべてのブックマークをインポートします。元々それほど多くはありませんでした。


移行後、多くのユーザーが不満を感じました。これは予想されることです。移行後に皆さんが聞いたことがないようなことではありません。それにもかかわらず、後でこのトピックでフィードバックの概要を共有します。Discourse の将来に役立つ示唆に富む内容があるかもしれません。

「いいね!」 17

共有ありがとうございます!リストにある多くの項目は、進行中のSMFからDiscourseへの移行プロジェクトのアクションアイテムとして特定しました :slightly_smiling_face:

カスタマイズされたインポータコードは公開されていますか?特に、正しい新しいリンクを確保するための2パスインポートの処理方法に興味があります。

「いいね!」 2

私が使用したインポートスクリプトを参照できます。確認したいファイルはこれです。
xenforo_import_enhanced.rb

「いいね!」 7

2パス必要だった理由は、時間の経過とともに古いトピックが新しいトピックにマージされることが避けられなかったためです。しかし、投稿は古いIDを持ち、最初に検出されてしまいます。その時点で対応するトピックがインポートされていないため、それらの投稿はすべて削除され、失われてしまいます。

「いいね!」 4

どうもありがとうございます。確認します。

また、この背景にある考えについての追加コメントも感謝します。それは幸いにも私たちが遭遇しなかった問題です。私が2パスインポートを考えていた主な理由は、引用内のハイパーリンクがまだ古いURLになっていることです。パーマリンクも機能するはずですが、新しいURLをすぐに投稿に使用できる方が良いと思います。

「いいね!」 1

すごい!おめでとうございます!そして共有していただきありがとうございます。

それは予想されることですね。彼らのフィードバックにどう対応するかが重要です。コメントに対応し、彼らが意見を聞いてもらえていると感じられるようにし、改善点や新機能(たくさんあるはずです!)を強調してください。フィードバックで何か困ったことがあれば、ここに投稿してください。喜んでお手伝いします。

この記事の最後のセクションをご覧ください。いくつかヒントが得られるはずです: How to prepare your community for a Discourse migration

「いいね!」 9

標準のインポーターで4回失敗した後、あなたのバージョンは美しく機能しました。

「いいね!」 4

Sharing this summary as promised. Used Gemini 2.5 Pro to summarize all feedback collected in the last 3 months.

I would say the biggest concern has been a good theme. I wish there was a paid themes marketplace on Discourse like on other forum platforms.


Summary

The feedback on the migration to Discourse is strongly divided, but a majority of vocal users express significant frustration, leading to reduced engagement. The most critical issues are centered on Navigation & Usability and UI & Design, particularly for desktop users accustomed to traditional forum layouts. While some users appreciate the modern look and technical improvements, the consensus among critics is that the platform prioritizes form over function, creating a high cognitive load and a less intuitive experience.


1. Navigation & Usability (Highest Priority)

This category received the most frequent and detailed negative feedback. Users find the new platform fundamentally harder to use, which is a direct cause of their reduced engagement.

  • Key Feedback Points & Weightage:

    • Infinite Scroll is Unpopular: The strongest point of consensus is the dislike for infinite scroll, especially on desktop. Users miss the context and control of page numbers for navigating long threads.
    • Generally Difficult to Navigate: A significant number of users describe the platform as confusing, cluttered, tedious, and having a steep learning curve they don’t wish to invest in for a forum.
    • Difficulty Finding Last/Unread Posts: A common struggle is the inability to intuitively jump to the last post or resume reading from a specific point in a thread, requiring users to learn non-obvious workarounds.
    • Poor Content Discovery: Users miss the old categories page, which provided a clear, hierarchical overview of the forum’s structure and latest activity within sections. The new layout is seen as a “mishmash.”
    • Broken Quoting: The process of quoting text is described as difficult and flaky, especially on mobile and tablets where the quote pop-up can be obscured by the native UI.
  • Actionable Insights:

    • Prioritize a “Traditional Forum” Experience: The core issue is the deviation from the expected forum model. A theme or layout that emulates a paginated, more structured view, especially for the categories page, would address the most significant complaints.
    • Improve Navigation Cues: Make jumping to the first, last, and last-unread post an obvious, one-click action. The current scrollbar functionality is not intuitive for many. Consider adding explicit buttons at the top and bottom of threads.
    • Re-evaluate the Default Quoting Behavior: The need to manually select text to quote is a major friction point. Investigate plugins or settings that make quoting a full post the default, one-click action.

2. UI & Design (High Priority)

Users feel the current design wastes space and harms readability, directly impacting their ability and desire to consume content.

  • Key Feedback Points & Weightage:

    • Excessive Whitespace: This was the most cited design flaw. Users on larger desktop monitors feel the narrow central column wastes significant screen real estate and reduces information density.
    • Desire for Customization: Users are actively seeking ways to improve their experience through custom CSS, different themes (Default over Horizon), and smaller font sizes. This indicates a strong desire for more user-level control over the appearance.
    • Poor Readability: The combination of whitespace, font sizes, and lack of clear separation between posts makes it harder to scan and read content compared to the previous software.
  • Actionable Insights:

    • Develop a “Compact” or “Full-Width” Theme: Address the whitespace complaint directly by offering an official theme that utilizes more of the screen width. This would also satisfy the desire for customization and is the most common workaround users are implementing themselves.
    • Refine Visual Separators: Increase the visual distinction between posts. Subtle changes like borders, alternating background colors, or different user-info block layouts can significantly improve readability and reduce the “chat-like” feel.
    • Review Font Sizing and Hierarchy: Conduct a review of the theme’s typography to ensure a more consistent and information-dense hierarchy, particularly for subcategory text and post content.

3. General Sentiment & User Engagement (High Impact)

A significant portion of the feedback indicates a direct, negative impact on user activity. While some of this is resistance to change, the consistency of the complaints suggests deeper issues.

  • Key Feedback Points & Weightage:

    • Negative Sentiment / Usage Dropped: This is a critical metric. Multiple users explicitly state they visit the forum less often now.
    • Positive Sentiment: A smaller but notable group enjoys the modern feel, speed, and features like the notification system and markdown editor.
    • Adaptive Users: This group misses the old forum but understands the technical reasons for the migration and is willing to adapt.
  • Actionable Insights:

    • Acknowledge and Communicate: Publicly acknowledge the user feedback and communicate a clear roadmap for UI/UX improvements. This can help retain users who are currently frustrated but willing to adapt.
    • Prioritize “Quality of Life” Fixes: Focus on low-effort, high-impact changes first (e.g., changing category colors to match the old theme as suggested by one user) to show that feedback is being heard and acted upon.
    • Create a “Getting Started” Guide: While some users resist reading guides, a pinned topic that quickly explains the top 5 most confusing changes (like navigating threads and quoting) could ease the transition for many.

4. Core Functionality & Performance (Medium Priority)

While not as frequently mentioned as UI/UX, these issues affect the core purpose of the forum.

  • Key Feedback Points & Weightage:

    • Chat-like Feel: The design encourages short, reactive replies rather than long-form, structured discussion, making it feel more like a chat app than a forum.
    • Poor Search: Users report that search does not effectively prioritize results from topic titles, making it hard to find known threads.
    • Performance Issues: One user noted that the text editor becomes laggy and causes their laptop to heat up on long threads.
  • Actionable Insights:

    • Tune Search Relevance: Investigate Discourse settings or plugins that can weigh topic titles more heavily in search results. The admin’s suggestion to use advanced syntax is a workaround, not a solution for default search behavior.
    • Monitor Performance on Long Threads: Keep an eye on the performance of the editor and scrolling on threads with thousands of replies to address potential client-side bottlenecks.
    • Enable AI Search: As suggested by the admin, enabling AI-powered search could be a long-term solution to the search relevance problem, but it should be weighed against potential costs.

このトピックで約束通りフィードバックの要約を共有します。過去3ヶ月間に収集されたすべてのフィードバックを要約するためにGemini 2.5 Proを使用しました。

最大の懸念事項は、テーマに関するものでした。他のフォーラムプラットフォームのように、Discourseにも有料テーママーケットプレイスがあればと思います。


要約

Discourseへの移行に関するフィードバックは大きく分かれていますが、声の大きいユーザーの大多数はかなりの不満を表明しており、エンゲージメントの低下につながっています。最も重要な問題は、特に従来のフォーラムレイアウトに慣れているデスクトップユーザーにとって、ナビゲーションとユーザビリティ、およびUIとデザインに集中しています。一部のユーザーはモダンな外観と技術的な改善を評価していますが、批評家の間では、プラットフォームが機能よりも形式を優先しており、高い認知負荷と直感的でないエクスペリエンスを生み出しているという意見がコンセンサスとなっています。


1. ナビゲーションとユーザビリティ(最優先事項)

このカテゴリは、最も頻繁かつ詳細な否定的なフィードバックを受けました。ユーザーは新しいプラットフォームを根本的に使いにくいと感じており、これがエンゲージメントの低下の直接的な原因となっています。

  • 主なフィードバックポイントと重要度:

    • 無限スクロールは不評: 最もコンセンサスのある点は、特にデスクトップでの無限スクロールの嫌悪感です。ユーザーは、長いスレッドをナビゲートする際のページ番号のコンテキストと制御を失っています。
    • 一般的にナビゲートが困難: かなりの数のユーザーが、プラットフォームを混乱、散らかっている、退屈、そしてフォーラムに投資したくない急な学習曲線があると説明しています。
    • 最後の投稿/未読投稿の見つけにくさ: よくある問題は、スレッドの最後の投稿や未読投稿に直感的にジャンプしたり、特定のポイントから読書を再開したりできないことです。ユーザーは、明白ではない回避策を学ぶ必要があります。
    • コンテンツ発見性の低さ: ユーザーは、フォーラムの構造とセクション内の最新アクティビティの明確で階層的な概要を提供していた古いカテゴリページを失っています。新しいレイアウトは「ごちゃ混ぜ」と見なされています。
    • 引用機能の不具合: テキストを引用するプロセスは、特にネイティブUIによって引用ポップアップが隠される可能性のあるモバイルやタブレットでは、困難で不安定であると説明されています。
  • 実行可能な洞察:

    • 「従来のフォーラム」エクスペリエンスを優先: コアの問題は、期待されるフォーラムモデルからの逸脱です。特にカテゴリページにおいて、ページネーションされた、より構造化されたビューを模倣したテーマまたはレイアウトは、最も重要な苦情に対処するでしょう。
    • ナビゲーションキューの改善: 最初、最後、最後の未読投稿へのジャンプを、明白なワンクリックアクションにします。現在のスクロールバー機能は多くの人にとって直感的ではありません。スレッドの上下に明示的なボタンを追加することを検討してください。
    • デフォルトの引用動作の再評価: テキストを選択して引用する必要があることは、大きな摩擦点です。フル投稿をデフォルトのワンクリックアクションにするプラグインまたは設定を調査してください。

2. UIとデザイン(高優先事項)

ユーザーは、現在のデザインが無駄なスペースを占め、可読性を損なっており、コンテンツを消費する能力と意欲に直接影響していると感じています。

  • 主なフィードバックポイントと重要度:

    • 過剰なホワイトスペース: これは最も頻繁に指摘されたデザイン上の欠陥でした。大きなデスクトップモニターのユーザーは、狭い中央の列が画面の大部分を無駄にし、情報密度を低下させていると感じています。
    • カスタマイズへの欲求: ユーザーは、カスタムCSS、異なるテーマ(HorizonよりもDefault)、およびより小さなフォントサイズを通じて、エクスペリエンスを改善する方法を積極的に探しています。これは、外観に対するユーザーレベルの制御をより多く求めていることを示しています。
    • 可読性の低さ: ホワイトスペース、フォントサイズ、投稿間の明確な区切りの欠如の組み合わせにより、以前のソフトウェアと比較してコンテンツのスキャンと読書が困難になっています。
  • 実行可能な洞察:

    • 「コンパクト」または「フル幅」テーマの開発: 画面幅をより多く利用する公式テーマを提供することで、ホワイトスペースの苦情に直接対処します。これはカスタマイズへの欲求も満たし、ユーザーが自分で実装している最も一般的な回避策です。
    • 視覚的な区切り線の調整: 投稿間の視覚的な区別を増やします。境界線、交互の背景色、または異なるユーザー情報ブロックレイアウトなどの微妙な変更は、可読性を大幅に向上させ、「チャットのような」感覚を軽減できます。
    • フォントサイズと階層のレビュー: テーマのタイポグラフィをレビューして、特にサブカテゴリテキストと投稿コンテンツにおいて、より一貫性のある情報密度の高い階層を確保します。

3. 一般的なセンチメントとユーザーエンゲージメント(高影響)

フィードバックの相当な部分は、ユーザーアクティビティへの直接的かつ否定的な影響を示しています。これには変化への抵抗も含まれますが、苦情の一貫性はより深い問題を示唆しています。

  • 主なフィードバックポイントと重要度:

    • 否定的なセンチメント/使用量の低下: これは重要な指標です。複数のユーザーが、現在フォーラムへの訪問頻度が減ったと明確に述べています。
    • 肯定的なセンチメント: より少数ですが注目すべきグループは、モダンな感覚、スピード、通知システムやマークダウンエディタのような機能を気に入っています。
    • 適応ユーザー: このグループは古いフォーラムを懐かしんでいますが、移行の技術的な理由を理解しており、適応する意欲があります。
  • 実行可能な洞察:

    • 認識とコミュニケーション: ユーザーフィードバックを公に認識し、UI/UX改善の明確なロードマップを伝えます。これにより、現在不満を感じているが適応する意欲のあるユーザーを維持するのに役立ちます。
    • 「ライフスタイル」修正の優先: フィードバックが聞き入れられ、対応されていることを示すために、まず低労力で高影響のある変更(例:あるユーザーが提案した古いテーマに一致するようにカテゴリの色を変更する)に焦点を当てます。
    • 「始め方」ガイドの作成: 一部のユーザーはガイドを読むことを避けますが、最も混乱しやすいトップ5の変更点(スレッドのナビゲーションや引用など)を迅速に説明するピン留めされたトピックは、多くの人にとって移行を容易にする可能性があります。

4. コア機能とパフォーマンス(中優先事項)

UI/UXほど頻繁には言及されませんが、これらの問題はフォーラムのコア機能に影響を与えます。

  • 主なフィードバックポイントと重要度:

    • チャットのような感覚: デザインは、長文で構造化された議論よりも、短く反応的な返信を奨励しており、フォーラムというよりはチャットアプリのように感じられます。
    • 検索の質の低さ: ユーザーは、検索がトピックタイトルの結果を効果的に優先しないため、既知のスレッドを見つけるのが困難であると報告しています。
    • パフォーマンスの問題: あるユーザーは、テキストエディタが遅くなり、長いスレッドでラップトップが熱くなる原因になると指摘しました。
  • 実行可能な洞察:

    • 検索関連性の調整: トピックタイトルの重みを検索結果でより高く評価できるDiscourseの設定またはプラグインを調査します。管理者が高度な構文を使用することを提案しているのは、デフォルトの検索動作の解決策ではなく、回避策です。
    • 長いスレッドでのパフォーマンス監視: 数千の返信があるスレッドのエディタとスクロールのパフォーマンスに注意を払い、潜在的なクライアントサイドのボトルネックに対処します。
    • AI検索の有効化: 管理者が提案したように、AI搭載検索を有効にすることは、検索関連性の問題に対する長期的な解決策になる可能性がありますが、潜在的なコストと比較検討する必要があります。
「いいね!」 3

なぜ#marketplaceではないのですか?結果は通常非公開ですが。

これらのユーザーのために、カテゴリの概要を明示的に呼び出すことを検討するか、あるいは彼らが好むものにその概要を切り替えることを検討してもよいでしょう。彼らを巻き込む機会でもあります。
デスクトップカテゴリページスタイルのさまざまな設定がどのように見えるかのスクリーンショットを共有し、彼らのお気に入りを尋ねてください。

これは、明示的にフィードバックを得たいと思われるものです。Metaでこれを報告するように依頼してもらえますか?

これはユーザーテーマで修正可能です :slight_smile: このテーマコンポーネントをユーザーが選択できるテーマに追加することを検討してください GitHub - discourse/discourse-full-width-component: Make Discourse occupy the full browser width

「投稿間の明確な区切り」とはどういう意味ですか?

変化は常に困難であり、人々は常に不平を言います。「否定的な」グループが十分に小さいのであれば、現時点では安全に無視して、適応者に焦点を当てるべきだと思います。彼らの体験を素晴らしいものにすれば、否定的な人々もそれに従う(または去る)でしょう。

「いいね!」 2

テーママーケットプレイスでは、コストが複数の購入者に分割されます。テーマ作成者は、多くのテーマを作成するインセンティブも得られます。

「いいね!」 1

コンポーネントは実際には全幅を提供しません。レイアウトが左に寄せられますが、拡張はされません。カスタムテーマを実装しましたが、すべてのテーマで可能であればと思います。

Horizon で全幅コンポーネントを使用した場合

Foundation をベースにしたカスタムテーマを使用した場合

しかし、おっしゃる通り、変化は難しく、多くのユーザーはすでに適応しており、まだ苦労している人もいます。すべての人を満足させるのは難しいです。全体的な経験を共有したいと思いました。

モバイル/タブレットでの引用問題に関する詳細を共有します。

「いいね!」 2