2000件のトピックがあるタグは削除できません

タグを整理していますが、2400件のトピックが付いているこのタグで問題が発生しました。「申し訳ありませんが、エラーが発生しました。」という一般的なメッセージが表示され、ログには何も記録されません。バックエンドから削除することはできますか、または他に試せることはありますか?特殊文字は含まれておらず、単にigです。

皆さん、よろしくお願いします!

レールコンソールから削除できるはずですが、UIからよりきれいに削除するために、まずトピックのバッチから一括削除を試してみてはどうでしょうか?

ありがとうございます。しかし、一括で実行する方法が見当たりません。すべてのタグを削除することはできますが、トピックに複数のタグが付いている場合に単一のタグを削除するオプションがありません。

2つのタグを削除する方法を探しています。1つは5818件、もう1つは1604件のエントリがあります。
これらはXenForoのインポートから来たもので、不要なものです。

レールコンソールでそれらのタグを関連トピックから削除するには、2つの方法があると思います。一方はもう一方よりも「ソフト」です。最初にバックアップを取ることをお勧めします。レールコマンドについては、こちらをご覧ください: https://meta.discourse.org/t/administrative-bulk-operations/118349。


  1. 各タグについて、レールコンソールに入力します:
cd /var/discourse
./launcher enter app
rails c
  1. タグを見つけて、トピックから削除します。
TAG_NAME = "your_tag_name"   # タグ名に置き換えてください
TAG = Tag.find_by(name: TAG_NAME)
Topic.joins(:tags).where(tags: { name: TAG_NAME }).each do |topic|
  topic.tags.delete(TAG)
  topic.save
end
  1. 2番目のタグについても繰り返します。
  2. その後、UIからそれらのタグを削除できるようになるはずです。

代替の高速な方法(よりリスクが高い)(私は自分で上記の方法を取ります)

しかし、ステップ2と4の代わりに、レールコンソールに入力した後、各タグに対して次を行うこともできると思います。

t = Tag.find_by_name('your_tag_name')
t.destroy!
「いいね!」 3

ありがとうございます。最初の試みでうまくいきました。最初の方法を選択し、どこにも割り当てられなくなったときにUI経由でタグを削除しました。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.