「ユーザーの承認が必要」を有効にして新しい Discourse をセットアップした際、テストユーザーを作成して削除した後、同じユーザーIDが実際にユーザーがサインアップした際に再利用されることに気づきました。しかし、public.reviewables テーブルに同じ target_id を持つ行が残留していたため、2 番目のユーザーには新しい行が作成されませんでした。その結果、UI は削除されたユーザー名を表示し、新しいユーザーの承認を促す際にその名前を参照してしまいました。
「いいね!」 2
最初のテストユーザーをどのように削除しましたか?Discourseのユーザーインターフェース経由でしたか、それともRailsコンソールからでしたか?
「いいね!」 2
すべてのユーザー管理は UI 上で行われました
この問題は再現できませんでした。Discourseの運用について学び始めたばかりだったため、残念ながら実行した手順をすべて詳細に記録していませんでした。ただし、users テーブルと reviewables テーブルの現在の記録は、私が目撃した現象を部分的に裏付けています。そこに手がかりがあるかもしれません。また、nginx と Rails のログも用意されています。
「いいね!」 2
ユーザーIDにはPostgreSQLのシーケンスを使用しており、常に増加します。トランザクションをロールバックしても、シーケンスは増加し続けます。
この制約を破るには、直接データベースを操作する必要があります(例えば、ユーザーテーブルのIDシーケンスのリセットなど)。
再現例がないため、この件をクローズします。もしこの状況を再現できる場合は、再オープンするようフラグを立ててください。
「いいね!」 1