システム作成トピックの削除ができない

カテゴリをタグに置き換えようとしていますが、削除できないシステム作成のトピックが一つ残ってしまいます(スクリーンショットでは「Technical」で、返信数が-1になっている点に注意してください)。このトピックを開こうとするとページがフリーズし、タブを閉じて最初からやり直すしかありません。これを削除する方法、特に Rails 側でできる方法をご存知でしょうか?

以下の手順を試してください。

cd /var/discourse
./launcher enter app
rails c
Topic.find(id).destroy

トピックのタイトルにマウスを合わせると、その id が確認できます。

ダニエラさん、ありがとうございます。トピックの削除はうまくいきました。しかし、カテゴリを削除しようとすると、まだトピックが1つあると認識され、カテゴリの削除ができません。カテゴリを削除するための類似の機能はありますか?

サイトの完全バックアップを取得してから、以下を実行してください。

cd /var/discourse
./launcher enter app
rails c
rake destroy:topics["Gear","Discussions"]

ここで Gear はサブカテゴリ、Discussions は親カテゴリを指します。

これでそのサブカテゴリ内のすべてのトピックが削除されるはずです。その後、サブカテゴリを削除できるようになります。

残念ながら、結果は以下の通りです…

NameError: undefined local variable or method `topics' for main:Object
from (pry):1:in `__pry__'
[2] pry(main)>

私のミスです。以下のコマンドのみを試してください

cd /var/discourse
./launcher enter app
rake destroy:topics["Gear","Discussions"]

discussions/gearカテゴリには削除対象のトピックが0件ありますが、それでもカテゴリを削除できません。「トピック数が1件のため、このカテゴリを削除できません。」と表示されます。

ログを確認して、特定のエラーがないか確認できますか?

いいえ、ログにはこれに関連するものは何も表示されていません…

カテゴリカウンターを更新してみて、それで解決するか確認してください。

cd /var/discourse
./launcher enter app
rails c
Category.ensure_consistency!

その後、再度カテゴリを削除してみてください。

残念ながら nil が返されました

以下のコマンドでトピック数をリセットできました。

Category.find_by(name: 'Gear').update(topic_count: 0)

その後、カテゴリを削除できました。David、ありがとう!

これも私には nil が返されました。

これは true を返しましたが、トピックの reply カラムにある -1 の値は変更されませんでした。また、カテゴリを削除することもまだできませんでした。

これにさらに時間を費やした結果、ついに動作するようになりました!ありがとうございます!