開発データベース(ローカル)でタグを削除するにはどうすればよいですか?

開発用 Discourse バックアップの手動復元の議論に続きます:

ローカルマシンで、復元前にバックアップデータベースからタグを削除したいと考えています。コンソール経由でどのように実行できますか?

「いいね!」 1

Rails コンソールからタグを削除するには、以下を試してください。

t = Tag.find_by_name('<your_tag_name>')
t.destroy!

最後のコマンドで delete の代わりに destroy! を呼び出すと、削除されたタグに関連付けられたサイト上のすべてのレコードも整理されます。

「いいね!」 3

ご協力ありがとうございます :blush:

まだ起動していないデータベース(例:複製されたタグの問題により復元できないバックアップ)からタグを削除することは可能でしょうか?

質問が明確に伝わっていることを願っています。

もし私がこれを自分で行うなら、まずバックアップファイルが作成されたサイトに戻り、Rails コンソールからタグを削除し、その後新しいバックアップファイルを作成することから始めます。

それが不可能な場合、あるいは重複タグの問題が解決しない場合は、psql ターミナルを開いてテーブルから該当する行を削除することもできます。例えば以下のようにします:

DELETE FROM tags WHERE name = <your_tag_name>;

ただし、この方法の懸念点は、Rails の destroy! コマンドを使用した場合と同様に、削除されたタグのサイトデータベース内での使用箇所まで削除されない可能性があることです。何か問題を引き起こさないか確認するため、バックアップファイルのコピーでテストすることをお勧めします。

また、タグを削除する前に SELECT 文を実行することも有効かもしれません。これにより問題の原因がわかる可能性があります:

SELECT FROM tags WHERE name = <your_tag_name>;
「いいね!」 1

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