このガイドでは、複数のユーザーアカウントを単一の Discourse アカウントにマージする方法について説明します。Discore UI を通じた一般ユーザーのマージと、コンソールを介したスタッフユーザーのマージについて扱います。
必要なユーザーレベル:管理者
Discourse でのユーザーアカウントのマージにより、複数のアカウントを 1 つに統合できます。このプロセスは、以下のようなシナリオで役立ちます。
- ユーザーが以前の登録を忘れたなど、複数のアカウントを作成した場合。
- ユーザーが既存のアカウントを更新する代わりに、新しいメールアドレスで新しいアカウントを作成した場合。
- ユーザーが異なる目的(例:個人用、業務用、テスト用)で使用していた複数のアカウントを 1 つのアカウントに統合したい場合。
一般ユーザーのマージ
管理者は、Discourse UI を通じて直接一般ユーザーをマージできます。
この操作は取り消せません。マージ後、ソースユーザーアカウントは削除されます。
2 つの一般ユーザーをマージするには、以下の手順に従ってください。
- ソースユーザー(マージ元のアカウント)のユーザー管理ページに移動します。
- ページの一番下までスクロールします。
- 「マージ」ボタンをクリックします。
- 最初のポップアップウィンドウで、ターゲットアカウント(マージ先のアカウント)のユーザー名を入力し、「転送して削除」をクリックします。
- 確認ダイアログが表示されます。表示された確認テキスト(例:
transfer @source to @target)を入力し、「転送して削除」をクリックしてマージを開始します。
大規模なアカウントのマージはリソースを多く消費し、ソースユーザーに関連するデータ量によっては処理に時間がかかる場合があります。
マージされるデータ
ユーザーアカウントをマージすると、Discourse は 50 以上のテーブルからデータを統合します。これには以下が含まれます。
- 投稿とトピック
- 送信および受信した「いいね」
- 私密メッセージ
- ユーザープロフィール情報
- ユーザー設定と環境設定
- ユーザーのアクションとアクティビティ(例:ブックマーク、トピック閲覧)
- バッジと実績
- 信頼レベルとグループメンバーシップ
- 関連アカウント(例:ソーシャルログイン)
競合が発生した場合、ターゲットユーザーの詳細が保持されます。両方のユーザーに 匿名ユーザー が関連付けられている場合、ソースユーザーが所有する匿名ユーザーは失われます。
ソースユーザーを参照するリンク(例:
https://discourse.example.com/t/some-topic/17/3?u=source_username)は、マージ後にターゲットユーザーに関連付けられません。
ユーザーのマージと DiscourseConnect に関する重要な注意点
ユーザーアカウントのマージは、実装次第で DiscourseConnect(旧 SSO)に影響を与える可能性があります。
- DiscourseConnect がメールアドレスベースの場合、DiscourseConnect システムでターゲットアカウントのメールアドレスが使用されていれば問題ありません。ただし、マージ後、ソースユーザーのメールアドレスはターゲットアカウントのセカンダリメールアドレスとして登録されるため、そのメールアドレスを後で DiscourseConnect で使用するとログインエラーが発生する可能性があります。必要に応じて、マージ後にセカンダリメールアドレスを削除することを検討してください。
- DiscourseConnect システムが Discourse のユーザー ID とは異なる一意のユーザー ID を使用している場合、ソースアカウントの一意の ID がターゲットアカウントに正しくマッピングされていないと、マージにより問題が発生する可能性があります。
スタッフユーザーのマージ
セキュリティ上の理由から、スタッフユーザーのマージはコンソールを通じて行う必要があります。
サイトが Discourse によってホストされている場合は、スタッフユーザーのマージについて team@discourse.org までお問い合わせください。
コンソールを介してスタッフユーザーをマージするには、以下の手順に従ってください。
root@host:/var/discourse# ./launcher enter app
root@host-app:/var/www/discourse# rake users:merge['source_username','target_username']
Users merged!
root@host-app:/var/www/discourse#
コマンド内のコンマの前後にスペースがないことを確認してください。
よくある質問
Q: マージ処理が停止したように見える場合はどうすればよいですか?
A: マージの進行状況画面が長時間変化しない場合は、ページをリフレッシュしてみてください。マージは完了しているが UI が更新されていない可能性があります。
Q: ユーザーのマージを取り消すことはできますか?
A: いいえ、2 つのユーザーをマージすると、その操作は取り消せません。ソースユーザーアカウントはマージ後に恒久的に削除されます。
Q: ユーザーのマージは投稿やトピックに影響しますか?
A: ソースユーザーのすべての投稿とトピックはターゲットユーザーに転送されます。これらのアイテムの作成者は、ターゲットユーザーに変更されます。

