/var/discourse/launcher enter app
rails c
UserDestroyer.new(Discourse.system_user).destroy(User.find_by_username_or_email("user@example.com"), delete_posts: false)
削除対象のユーザー名リストがテキストファイルに長々とあるので、手動で一つずつ実行するのは現実的ではありません。削除コマンドを Bash スクリプトでラックしようと試みました。しかし、launcher app サブコマンドで rails c を実行すると、Redis 接続に失敗します。
/var/discourse/launcher run app "echo \"User.find_by_username_or_email('user@example.com')\" | rails c"
Failed to report error: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) 2 Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second.
一方、launcher enter app と launcher run app の環境変数を export で比較すると、ほぼ同じように見えます。何が足りないのでしょうか?launcher run は / から開始されるのに対し、launcher enter は直接 /var/www/discourse に進入します。実行前に cd を使っても解決しませんでした。