数年間、小さなフォーラムを運営しており、順調に進んでいます。自動バックアップを設定しましたが、Discourseのバージョンを長期間更新していませんでした。
サーバーが故障しましたが、バックアップはあります。バックアップは古いDiscourseバージョンのもので、約2年前のものです。最新バージョンをインストールしてバックアップから復元しようとすると、うまくいきません。古いバージョンをインストールしようとしても、それは不可能です。セットアップスクリプトは自動的に新しいコミットと最新のDockerイメージを取得します。ランチャースクリプトでこれらの行を見つけて削除しましたが、Dockerイメージ内のいくつかの内部コードもGitを最新バージョンにチェックして更新します。
どうすればよいですか?古いDiscourseバージョンを実行するには、または新しいバージョンに古いバックアップを復元するにはどうすればよいですか?
pfaffman
(Jay Pfaffman)
2025 年 8 月 27 日午後 8:43
2
ヘルプが必要な場合は、もっと具体的に説明してください。それは機能するはずです。もしあなたが当時持っていたのと同じバージョンのDiscourseをインストールできたとしても、問題は機能しない可能性が高いです。
復元を試みたときにどのようなエラーが発生しましたか?
./launcher logs app の出力に重大なエラーはありませんが、フォーラムは機能していません。ほとんどすべてのボタンが機能せず、トピックがなく、HTMLは奇妙に見えます(バグのあるスタートページが繰り返され、無限に下にスクロールできます)。
私は専門的な技術者ではありません。レポートに追加できるログはどれか、またそれらをどこで見つけられるか教えていただけると幸いです。
フォーラムの /logs ルートにエラーはありますか?
問題は、/logs にアクセスできないことです。「このページは存在しないか、プライベートです。」そして、確認するためにログインできません。
https://forum.example.com/u/admin-login の 管理者ログイン を試してください。
リンクありがとうございます。しかし、それは機能しません。メールは送信されますが、SMTPサーバーがなく、このプラグインを使用しています: Disable Email Verification for Discourse Plugin
もしかしたら、サーバーで何が起こったのかを確認するために、コンソールコマンドで何かできることはありますか?
AFAIK、そのプラグインは壊れています。使用しない方が良いかもしれません。
「いいね!」 1
サーバーを作成した際、ユーザーがメール確認なしでアカウントを作成できるようにする別の解決策はありませんでした。
現在壊れているかもしれませんが、少なくともフォーラムの古いバージョンを復元しようとしています。
「いいね!」 1
現在、フォーラムのロゴとタグのみが表示され、すべてのボタンが使用できなくなっており、バックアップがあるにもかかわらず、フォーラムから一切のデータにアクセスできません。
「いいね!」 1
それは困りましたね。ログを取得するために、ここで説明されていることを試していただけますか?
When troubleshooting issues or errors with Discourse it is important you look at your logs. Here’s a listing of where they are and what’s in there.
Your site domain
Administration logs shown in the UI
The Discourse admin panel contains several forms of logging:
Emails that are sent, skipped, bounced, received and rejected are logged at https://=DOMAIN=/admin/email/sent and the neighboring tabs.
Staff actions are logged at https://=DOMAIN=/admin/logs/staff_action_logs
Email addresses and …
pfaffman
(Jay Pfaffman)
2025 年 8 月 28 日午後 2:17
13
セーフモードは試しましたか?
そして、動作しないプラグインと、おそらく他のプラグインもコメントアウトしてください。何か動作するようになったら、それらを元に戻すことができます。
Rails の本番ログに重大なエラーは含まれておらず、product_errors.log は空です。
Unicorn エラーログ
unknown OID 17246: failed to recognize type of 'embeddings'. It will be treated as String.
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 2 EOFError subscribe failed, reconnecting in 1 second. Call stack /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:103:in `rescue in read'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:94:in `read'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:535:in `next_event'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:66:in `subscription'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:17:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:175:in `_subscription'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/pubsub.rb:17:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:293:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread'
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 heartbeat: Connection refused - connect(2) for 127.0.0.1:6379
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) sidekiq-exception
Failed to report error: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 2 Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) subscribe failed, reconnecting in 1 second. Call stack /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `__connect_nonblock'
/usr/local/lib/ruby/3.3.0/socket.rb:1219:in `connect_nonblock'
/usr/local/lib/ruby/3.3.0/socket.rb:60:in `connect_internal'
/usr/local/lib/ruby/3.3.0/socket.rb:141:in `connect'
/usr/local/lib/ruby/3.3.0/socket.rb:647:in `block in tcp'
/usr/local/lib/ruby/3.3.0/socket.rb:231:in `each'
/usr/local/lib/ruby/3.3.0/socket.rb:231:in `foreach'
/usr/local/lib/ruby/3.3.0/socket.rb:637:in `tcp'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:120:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/connection_mixin.rb:11:in `reconnect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:769:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/middlewares.rb:12:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:768:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:759:in `raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:719:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:314:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/strings.rb:191:in `get'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:366:in `process_global_backlog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:279:in `block in global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread'
unknown OID 17246: failed to recognize type of 'embeddings'. It will be treated as String.
Sidekiq のログは空です。
Nginx のログに問題はありません。
Unicorn ログで Redis 接続の問題を確認しましたが、Redis ログ自体にはエラーはありません。
9706:C 28 Aug 2025 15:11:25.025 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:11:25.106 * Background saving terminated with success
881:M 28 Aug 2025 15:16:26.096 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:16:26.097 * Background saving started by pid 10037
10037:C 28 Aug 2025 15:16:26.109 * DB saved on disk
10037:C 28 Aug 2025 15:16:26.109 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:16:26.198 * Background saving terminated with success
881:M 28 Aug 2025 15:21:27.004 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:21:27.004 * Background saving started by pid 10365
10365:C 28 Aug 2025 15:21:27.019 * DB saved on disk
10365:C 28 Aug 2025 15:21:27.019 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:21:27.105 * Background saving terminated with success
881:M 28 Aug 2025 15:26:28.030 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:26:28.031 * Background saving started by pid 10703
10703:C 28 Aug 2025 15:26:28.050 * DB saved on disk
10703:C 28 Aug 2025 15:26:28.051 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:26:28.132 * Background saving terminated with success
881:M 28 Aug 2025 15:31:29.094 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:31:29.095 * Background saving started by pid 11028
11028:C 28 Aug 2025 15:31:29.109 * DB saved on disk
11028:C 28 Aug 2025 15:31:29.110 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:31:29.196 * Background saving terminated with success
PostgreSQL のログにエラーはありません。
pfaffman
(Jay Pfaffman)
2025 年 8 月 28 日午後 3:46
16
申し訳ありません。「safe mode 」の代わりに「safe-mode」と入力してしまい、自動リンクされていないことに気づきませんでした。
ありがとうございます。うまくいき、フォーラムは動作しています(完全にではありませんが、コンテキストでトピックにアクセスできます)。
ただし、セーフモードなしではフォーラムは使用できず、どのプラグインをインストールしたか正確には覚えていません。プラグインのリストはapp.ymlにあるはずですが、サーバーは停止しており、app.ymlが含まれていないバックアップしかありません。フォーラムを復元し、破損したプラグインを削除するにはどうすればよいですか?
Canapin
(Coin-coin le Canapin)
2025 年 8 月 28 日午後 7:06
18
既存の app.yml を使用せずに復元した場合、バンドルされているプラグイン(すべて公式のもの)以外はインストールされないはずです。
ただし、テーマとテーマコンポーネントはバックアップに含まれているため、それらを無効にしてみてください。
セーフモードを使用して、テーマとコンポーネントのみを無効にし、問題がそれらのいずれかによって引き起こされていることを確認してください。
「いいね!」 2
テーマなしでは機能しますが、テーマはどこで見つけられますか?バックアップには、dump.sql.gz とユーザーメディアとファイルのみを含む uploads フォルダの 2 つの項目しか表示されません。
pfaffman
(Jay Pfaffman)
2025 年 8 月 28 日午後 8:43
20
管理インターフェースからテーマにアクセスできます。まずすべて無効にしてから、1つずつ有効にする(または他の方法で)ことができます。
「いいね!」 1