これはサポート対象外のプロセスですので、念のため動作テストをお勧めしますが、おそらくアップグレードを実行するだけで問題なく動作するはずです。
PostgreSQL 18 の標準インストールと デュアルコンテナ構成を問題なく実施しました。また @chrisr さんおよびチームの皆様に、わかりやすい手順をご提供いただき、改めて感謝いたします。
Cloudflare CDN の背後に R2 アップロード/バックアップバケットを用いたデュアルコンテナ構成の場合、私が使用した手順は以下の通りです。
ステップ 1: ディスクのクリーンアップ
# 未使用の docker データをすべて削除
docker system prune -a -f
# 古いログと apt キャッシュをクリア
journalctl --vacuum-time=2d
apt-get clean
apt-get autoremove -y
# データベースサイズを確認
du -sh /var/discourse/shared/data/postgres_data*
# 新しい空き領域を確認
df -h -x tmpfs -x devtmpfs
ステップ 2: メンテナンスとバックアップ
- Cloudflare のメンテナンスページを編集し、「15〜20分間のシステムメンテナンス更新を行います」(実際にはこれほど時間がかからない可能性がありますが、安全策として設定しておくのがよいです!)と表示し、リロードタイマーを30秒程度に設定します。メンテナンスページを表示するための Cloudflare Worker ルートを有効にします。
- コマンドライン経由でバックアップをトリガーします:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
- Cloudflare R2 ダッシュボードにログインし、バックアップフォルダを確認して、バックアップファイルが正常にアップロードされたことを確認します。
ステップ 3: 安全なシャットダウン
- まず Web コンテナを停止してアクティブな接続を切断し、その後データベースコンテナを停止します:
cd /var/discourse
./launcher stop web_only
./launcher stop data
- PostgreSQL が正常にシャットダウンされたことを確認します:
tail -n 20 shared/data/log/var-log/postgres/current
ステップ 4: アップグレードによる再構築
以下のコマンドをこの順序で実行します:
./launcher rebuild data # postgresql 18 のダンプ、マイグレーション、リストアを実行
./launcher rebuild data # データベースコンテナを再構築
./launcher rebuild web_only # Web アプリケーションを再構築
ステップ 5: 最適化とクリーンアップ
- 欠落している pg18 のテーブル統計情報を生成します。これをしないと、フォーラムが通常より遅くなります:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
- フォーラムをテストして、すべてが正常に動作していることを確認します。リロードタイマーを設定している場合、メンテナンスページは現在読み込まれていないはずです。
- メンテナンスページへの Cloudflare Worker ルートを削除します(1日10万回の上限に達したくないためです!)。
- ディスク領域を確保するために、古い pg18 データを削除します:
rm -fr /var/discourse/shared/data/postgres_data_old/
完了です!
![]()
1 の場合、アップグレードプロセスで使用されるように、その追加のスペースをコンテナにマウントする必要がありますが、それでもスペースチェックを回避する必要がありますよね?
これは鶏と卵の問題かもしれません。
ステージングサイトが別のデータベースを使用している場合、すべてをチェックしているわけではありません。その方法にこだわる場合は、バックアップを作成し、postgres_data を削除して、空のデータベースでコンテナを再構築し、その後バックアップを復元します。
しかし、本当にすべきことは、新しい pg18 サーバーを作成し、ステージングサーバーをそこに接続して動作することを確認し、その後本番サーバーをそこに移行することです。
アップデート時に以下のエラーメッセージを受け取りました:
Stopping PostgreSQL 15 database server:
main.Stopping PostgreSQL 18 database server:
mainError: The cluster is owned by group id 993 which does not exist ... failed!
failed!
この問題を解決するためのコツは、古いアップグレードの残骸を削除し、権限を修正することでした:
rm -rf /var/discourse/shared/standalone/postgres_data_new
chown -R 999:999 /var/discourse/shared/standalone/postgres_data
… その後、./launcher rebuild app を2回実行し、オプションとして(移行が成功し、すべてが正常に動作している場合)./launcher cleanup を実行します。
これが役に立てば幸いです。 ![]()
Windows で DevContainers を使用して開発環境を実行していますが、このエラーを修正する方法はありますか?
discourse@ddf88cb78939:/workspace/discourse$ bin/dev
[rails] Starting Pitchfork...
[ember] Starting rolldown dev server...
[rails] Starting CSS change watcher
[rails] URGENT: Failed to initialize site default: ActiveRecord::ConnectionNotEstablished connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
[rails] Is the server running locally and accepting connections on that socket?
[rails] connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
[rails] Is the server running locally and accepting connections on that socket?
[rails] connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
[rails] Is the server running locally and accepting connections on that socket?
[rails]
[rails] /workspace/discourse/config/initializers/000-pg_connection_patch.rb:35:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.new_client'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:944:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#connect'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:956:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#reconnect'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:670:in 'block (2 levels) inActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:1224:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#attempt_configure_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:669:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:668:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:778:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:766:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:786:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#connect!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:992:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:991:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:128:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote_string'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/quoting.rb:76:in 'ActiveRecord::ConnectionAdapters::Quoting#quote'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:122:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1142:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#quoted_scope'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1119:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#data_source_sql'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:60:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#table_exists?'
[rails] /workspace/discourse/lib/site_settings/db_provider.rb:58:in 'SiteSettings::DbProvider#table_exists?'
[rails] /workspace/discourse/lib/site_settings/db_provider.rb:14:in 'SiteSettings::DbProvider#all'
[rails] /workspace/discourse/lib/site_setting_extension.rb:1286:in 'SiteSettingExtension#fetch_setting_hash_from_provider'
[rails] /workspace/discourse/lib/site_setting_extension.rb:602:in 'block in SiteSettingExtension#refresh!'
[rails] /workspace/discourse/lib/site_setting_extension.rb:598:in 'Thread::Mutex#synchronize'
[rails] /workspace/discourse/lib/site_setting_extension.rb:598:in 'SiteSettingExtension#refresh!'
[rails] /workspace/discourse/config/initializers/005-site_settings.rb:19:in 'block (2 levels) in "<main>'
[rails] /workspace/discourse/lib/freedom_patches/rails_multisite.rb:15:in 'block in RailsMultisite::ConnectionManagement.safe_each_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in 'RailsMultisite::ConnectionManagement::NullInstance#with_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:36:in 'RailsMultisite::ConnectionManagement::NullInstance#each_connection'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in 'RailsMultisite::ConnectionManagement.each_connection'
[rails] /workspace/discourse/lib/freedom_patches/rails_multisite.rb:9:in 'RailsMultisite::ConnectionManagement.each_active_connection'
[rails] /workspace/discourse/lib/freedom_patches/rails_multisite.rb:14:in 'RailsMultisite::ConnectionManagement.safe_each_connection'
[rails] /workspace/discourse/config/initializers/005-site_settings.rb:18:in 'block in <main>'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'BasicObject#instance_exec'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'block in ActiveSupport::Callbacks::CallTemplate::InstanceExec0#make_lambda'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:178:in 'block in ActiveSupport::Callbacks::Filters::Before#call'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:668:in 'block (2 levels) in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'Kernel#catch'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'block in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:179:in 'ActiveSupport::Callbacks::Filters::Before#call'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'block in ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'Array#each'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:108:in 'ActiveSupport::Callbacks#run_callbacks'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/reloader.rb:96:in 'ActiveSupport::Reloader.prepare!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application/finisher.rb:73:in 'block in <module:Finisher>'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'BasicObject#instance_exec'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'Rails::Initializable::Initializer#run'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:61:in 'block in Rails::Initializable#run_initializers'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:231:in 'block in TSort.tsort_each'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:353:in 'block (2 levels) in TSort.each_strongly_connected_component'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:434:in 'TSort.each_strongly_connected_component_from'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:352:in 'block in TSort.each_strongly_connected_component'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Rails::Initializable::Collection#each'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Method#call'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'TSort.each_strongly_connected_component'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:229:in 'TSort.tsort_each'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:208:in 'TSort#tsort_each'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:60:in 'Rails::Initializable#run_initializers'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application.rb:444:in 'Rails::Application#initialize!'
[rails] /workspace/discourse/config/environment.rb:7:in '<top (required)>'
[rails] /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
[rails] /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
[rails] config.ru:8:in 'block in <main>'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'BasicObject#instance_eval'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'Rack::Builder#initialize'
[rails] config.ru:3:in 'Class#new'
[rails] config.ru:3:in '<main>'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'Kernel#eval'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'block in Pitchfork.builder'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:1160:in 'Pitchfork::HttpServer#build_app!'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:694:in 'block in Pitchfork::HttpServer#spawn_initial_mold'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:170:in 'block in Pitchfork.clean_fork'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Kernel#catch'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Pitchfork.clean_fork'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:690:in 'Pitchfork::HttpServer#spawn_initial_mold'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:176:in 'Pitchfork::HttpServer#start'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/exe/pitchfork:110:in '<top (required)>'
[rails] /workspace/discourse/bin/pitchfork:58:in 'Kernel#load'
[rails] /workspace/discourse/bin/pitchfork:58:in 'block in <main>'
[rails] /workspace/discourse/bin/pitchfork:58:in 'Kernel#fork'
[rails] /workspace/discourse/bin/pitchfork:58:in '<main>'
[rails] /workspace/discourse/config/initializers/000-pg_connection_patch.rb:35:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.new_client': ソケット「/var/run/postgresql/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません (ActiveRecord::ConnectionNotEstablished)
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか?
[rails] ソケット「/run/postgresql/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか?
[rails] ソケット「/tmp/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか?
[rails]
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:944:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#connect'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:956:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#reconnect'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:670:in 'block (2 levels) in ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:1224:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#attempt_configure_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:669:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:668:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:778:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:766:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:786:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#connect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:992:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:991:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:128:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote_string'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/quoting.rb:76:in 'ActiveRecord::ConnectionAdapters::Quoting#quote'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:122:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1142:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#quoted_scope'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1119:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#data_source_sql'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:45:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#data_source_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/schema_migration.rb:102:in 'block in ActiveRecord::SchemaMigration#table_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in'ActiveRecord::ConnectionAdapters::ConnectionPool#with_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/schema_migration.rb:101:in 'ActiveRecord::SchemaMigration#table_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1282:in 'ActiveRecord::MigrationContext#get_all_versions'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1299:in 'ActiveRecord::MigrationContext#pending_migration_versions'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1295:in 'ActiveRecord::MigrationContext#needs_migration?'
[rails] from /workspace/discourse/config/initializers/100-flags.rb:6:in 'block in <main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'BasicObject#instance_exec'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'block in ActiveSupport::Callbacks::CallTemplate::InstanceExec0#make_lambda'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:178:in 'block in ActiveSupport::Callbacks::Filters::Before#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:668:in 'block (2 levels) in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'Kernel#catch'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'block in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:179:in 'ActiveSupport::Callbacks::Filters::Before#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'block in ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'Array#each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:108:in 'ActiveSupport::Callbacks#run_callbacks'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/reloader.rb:96:in 'ActiveSupport::Reloader.prepare!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application/finisher.rb:73:in 'block in <module:Finisher>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'BasicObject#instance_exec'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'Rails::Initializable::Initializer#run'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:61:in 'block in Rails::Initializable#run_initializers'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:231:in 'block in TSort.tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:353:in 'block (2 levels) in TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:434:in 'TSort.each_strongly_connected_component_from'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:352:in 'block in TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Rails::Initializable::Collection#each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Method#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:229:in 'TSort.tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:208:in 'TSort#tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:60:in 'Rails::Initializable#run_initializers'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application.rb:444:in 'Rails::Application#initialize!'
[rails] from /workspace/discourse/config/environment.rb:7:in '<top (required)>'
[rails] from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
[rails] from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
[rails] from config.ru:8:in 'block in <main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'BasicObject#instance_eval'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'Rack::Builder#initialize'
[rails] from config.ru:3:in 'Class#new'
[rails] from config.ru:3:in '<main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'Kernel#eval'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'block in Pitchfork.builder'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:1160:in 'Pitchfork::HttpServer#build_app!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:694:in 'block in Pitchfork::HttpServer#spawn_initial_mold'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:170:in 'block in Pitchfork.clean_fork'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Kernel#catch'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Pitchfork.clean_fork'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:690:in 'Pitchfork::HttpServer#spawn_initial_mold'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:176:in 'Pitchfork::HttpServer#start'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/exe/pitchfork:110:in '<top (required)>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#load'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'block in <main>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#fork'
[rails] from /workspace/discourse/bin/pitchfork:58:in '<main>'
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pg-1.6.3-x86_64-linux/lib/pg/connection.rb:944:in 'PG::Connection.connect_start': ソケット「/var/run/postgresql/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません (PG::ConnectionBad)
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか?
[rails] ソケット「/run/postgresql/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか?
[rails] ソケット「/tmp/.s.PGSQL.5432」へのサーバー接続に失敗しました:そのようなファイルやディレクトリはありません
[rails] ローカルでサーバーが実行されており、そのソケットで接続を受け付けていますか??
[rails]
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pg-1.6.3-x86_64-linux/lib/pg/connection.rb:944:in 'PG::Connection.connect_to_hosts'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pg-1.6.3-x86_64-linux/lib/pg/connection.rb:871:in 'PG::Connection.new'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pg-1.6.3-x86_64-linux/lib/pg.rb:88:in 'PG.connect'
[rails] from /workspace/discourse/config/initializers/000-pg_connection_patch.rb:5:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.new_client'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:944:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#connect'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:956:in 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#reconnect'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:670:in 'block (2 levels) in ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:1224:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#attempt_configure_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:669:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:668:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#reconnect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:778:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:766:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#verify!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:786:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#connect!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:992:in 'block in ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:991:in 'ActiveRecord::ConnectionAdapters::AbstractAdapter#with_raw_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:128:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote_string'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/quoting.rb:76:in 'ActiveRecord::ConnectionAdapters::Quoting#quote'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:122:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::Quoting#quote'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1142:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#quoted_scope'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:1119:in 'ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#data_source_sql'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:45:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#data_source_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/schema_migration.rb:102:in 'block in ActiveRecord::SchemaMigration#table_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in'ActiveRecord::ConnectionAdapters::ConnectionPool#with_connection'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/schema_migration.rb:101:in 'ActiveRecord::SchemaMigration#table_exists?'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1282:in 'ActiveRecord::MigrationContext#get_all_versions'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1299:in 'ActiveRecord::MigrationContext#pending_migration_versions'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activerecord-8.0.5.1/lib/active_record/migration.rb:1295:in 'ActiveRecord::MigrationContext#needs_migration?'
[rails] from /workspace/discourse/config/initializers/100-flags.rb:6:in 'block in <main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'BasicObject#instance_exec'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:406:in 'block in ActiveSupport::Callbacks::CallTemplate::InstanceExec0#make_lambda'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:178:in 'block in ActiveSupport::Callbacks::Filters::Before#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:668:in 'block (2 levels) in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'Kernel#catch'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:667:in 'block in ActiveSupport::Callbacks::CallbackChain#default_terminator'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:179:in 'ActiveSupport::Callbacks::Filters::Before#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'block in ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'Array#each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:559:in 'ActiveSupport::Callbacks::CallbackSequence#invoke_before'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/callbacks.rb:108:in 'ActiveSupport::Callbacks#run_callbacks'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/activesupport-8.0.5.1/lib/active_support/reloader.rb:96:in 'ActiveSupport::Reloader.prepare!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application/finisher.rb:73:in 'block in <module:Finisher>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'BasicObject#instance_exec'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:32:in 'Rails::Initializable::Initializer#run'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:61:in 'block in Rails::Initializable#run_initializers'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:231:in 'block in TSort.tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:353:in 'block (2 levels) in TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:434:in 'TSort.each_strongly_connected_component_from'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:352:in 'block in TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Rails::Initializable::Collection#each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'Method#call'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'TSort.each_strongly_connected_component'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:229:in 'TSort.tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:208:in 'TSort#tsort_each'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/initializable.rb:60:in 'Rails::Initializable#run_initializers'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/railties-8.0.5.1/lib/rails/application.rb:444:in 'Rails::Application#initialize!'
[rails] from /workspace/discourse/config/environment.rb:7:in '<top (required)>'
[rails] from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
[rails] from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
[rails] from config.ru:8:in 'block in <main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'BasicObject#instance_eval'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/rack-2.2.23/lib/rack/builder.rb:125:in 'Rack::Builder#initialize'
[rails] from config.ru:3:in 'Class#new'
[rails] from config.ru:3:in '<main>'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'Kernel#eval'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:91:in 'block in Pitchfork.builder'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:1160:in 'Pitchfork::HttpServer#build_app!'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:694:in 'block in Pitchfork::HttpServer#spawn_initial_mold'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:170:in 'block in Pitchfork.clean_fork'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Kernel#catch'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Pitchfork.clean_fork'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:690:in 'Pitchfork::HttpServer#spawn_initial_mold'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:176:in 'Pitchfork::HttpServer#start'
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/exe/pitchfork:110:in '<top (required)>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#load'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'block in <main>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#fork'
[rails] from /workspace/discourse/bin/pitchfork:58:in '<main>'
[rails] mold gen=0 pid=6050 reaped (#<Process::Status: pid 6050 exit 1>)
[rails] /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/lib/pitchfork/http_server.rb:179:in 'Pitchfork::HttpServer#start': The initial mold failed to boot (Pitchfork::BootFailure)
[rails] from /home/discourse/.bundle/gems/ruby/3.4.0/gems/pitchfork-0.18.2/exe/pitchfork:110:in '<top (required)>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#load'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'block in <main>'
[rails] from /workspace/discourse/bin/pitchfork:58:in 'Kernel#fork'
[rails] from /workspace/discourse/bin/pitchfork:58:in '<main>'
[rails] /workspace/discourse/bin/pitchfork exited with code 0
--> Sending SIGTERM to other processes..
[ember] ./rolldown.mjs exited with code SIGTERM
discourse@ddf88cb78939:/workspace/discourse$
推測ですが、Discourse はこれらを混同しているのでしょうか?
discourse@ddf88cb78939:/workspace/discourse$ sudo cat /shared/postgres_data/PG_VERSION
sudo cat /shared/postgres_data_orig/PG_VERSION
15
18
追記:ChatGPT の助けを借りて修正しました。私は Linux/Postgres の専門家ではありません。
PostgreSQL 18 が欠落しているか、secondsite データベースのマイグレーションが行われないという問題に直面しています。この件に関するご支援をいただければ幸いです。
壊れたマルチサイトアップグレードの修正を保留中ですので、準備ができ次第お知らせします。
マルチサイトとすべてのデータベースに対応する修正をマージしました。これにより、データベースは正常にアップグレードされるはずです。以下の手順を実行して、データベースをアップグレード前の状態に戻し、再試行できます。
/shared/postgres_data_oldに旧データがまだ存在していることを確認します。/shared/postgres_dataから失敗したアップグレードのデータを削除します(十分な空きディスク容量がある場合は、削除するのではなくいったんリネームしておくことをお勧めします)。/shared/postgres_data_oldを/shared/postgres_dataにリネームします。また、ディレクトリのモードが 0700 であることを確認してください。そうしないと、Postgres が使用を拒否します。./launcher rebuild appを実行して、アップグレードを再開始します。
彼らは数時間前に問題を解決したと思います
心より感謝申し上げます。
リビルドメッセージでこれを記録しました:
116:C 11 Aug 2026 06:43:27.336 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see vm.max_map_count growing steadily when vm.overcommit_memory is 2 · Issue #1328 · jemalloc/jemalloc · GitHub. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
これは懸念すべき問題でしょうか?
新しいデータベースのサイズが、以前のサイズよりも大幅に小さくなっていることも確認しました。
root@Forum:/var/discourse/shared/standalone# du -sh postgres_data postures_data_old
6.8G postgres_data
10G postgres_data_old
17G total
これは懸念すべきことでしょうか?
かなり奇妙なディレクトリ名ですね?
比較のために、私の環境では以下のように出力されました:
:/var/discourse/shared/data# du -sh postgres_data postgres_data_old
4.1G postgres_data
3.4G postgres_data_old
ええ、タイプ修正が何らかの形でそれを壊してしまったようです。実際は postgres_data です。
つまり、新しいデータの方が大きかったということですね。少し心配です。
アップデートを実行し、すべて非常に順調に進みました。最初の再構築では、15からのアップデートが成功したというメッセージがコンソールに表示され、旧データベースの場所と再構築をもう一度実行する手順が示されました。
Lillyのヒントのおかげで
ディスクに十分な空き容量があることを確認できました
追記
この素晴らしい作業に取り組んだ皆様に感謝します ![]()
[quote=“Lilly, post:43, topic:406194”]
# データベースのサイズを確認
du -sh /var/discourse/shared/data/postgres_data
[/quote]\nアップグレードの残骸が残っている可能性を考慮して、ワイルドカードを追加するかもしれません:
# データベースのサイズを確認
du -sh /var/discourse/shared/data/postgres_data*
ブォォォォォォ
… ![]()
想像つくと思いますが、このメモは届いていませんでした… だめだ! ![]()
このデータベースのアップグレードやストレージ要件について全く把握していなかったため、最初はPostgreSQLから12GBのストレージ不足というエラーメッセージが表示され、アプリが再起動しませんでした。ドライブを整理して約6GBを確保し、再度実行してみましたが、やはりうまくいきませんでした。
手探りで試行錯誤するのを避けるため、バックアップからの復元に切り替えました。
いつでも @pfaffman のように、完全に新しいサーバーに移行し、PG 18 と最新のパッチが適用された Ubuntu LTS のクリーンインストールから始めることができます…
ありがとうございます。以下のことを確認するためにテスト移行を行います:
このトピックも引き続き注視しています。
