面向自托管用户的 PostgreSQL 18 更新

我们建议您测试该流程,因为这并非我们支持的功能,但很可能您只需执行升级操作即可顺利解决。

3 个赞

我刚刚完成了 PostgreSQL 18 的标准安装以及 双容器 配置,整个过程非常顺利,没有任何问题。再次感谢 @chrisr 和团队提供的简易指南。

对于配置在 Cloudflare CDN 后面并使用 R2 进行上传/备份的双容器环境,我使用的步骤如下:

第一步:磁盘清理

# 清除所有未使用的 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

第二步:维护与备份

  1. 编辑 Cloudflare 维护页面,显示“15-20 分钟系统维护更新”,并设置自动刷新计时器(可能不会花这么长时间,但以防万一!)。开启一个 Cloudflare Worker 路由以显示维护页面。

  1. 通过命令行触发备份:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
  1. 登录 Cloudflare R2 控制台并检查备份文件夹,确认备份文件已成功上传。

第三步:安全关机

  1. 首先停止 Web 容器以断开所有活动连接,然后停止数据库容器:
cd /var/discourse
./launcher stop web_only
./launcher stop data
  1. 验证 PostgreSQL 是否正常关闭:
tail -n 20 shared/data/log/var-log/postgres/current

第四步:升级重建

按以下顺序运行命令:

./launcher rebuild data # 导出、迁移并恢复 PostgreSQL 18
./launcher rebuild data # 重建数据库容器
./launcher rebuild web_only # 重建 Web 应用

第五步:优化与清理

  1. 生成缺失的 pg18 表统计信息,否则论坛速度会比平时慢:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
  1. 测试论坛以确保一切正常运行——如果你设置了自动刷新计时器,此时维护页面应该不再显示。
  2. 删除指向维护页面的 Cloudflare Worker 路由(我们不想触及每日 100,000 次的限制!)
  3. 删除旧的 pg18 数据以释放磁盘空间:
rm -fr /var/discourse/shared/data/postgres_data_old/

完成! :partying_face: :clinking_beer_mugs:

5 个赞

对于第 1 点,你需要在容器内挂载额外的空间供升级过程使用,但我认为你仍然需要绕过空间检查?

我觉得这可能是一个“先有鸡还是先有蛋”的问题。

如果你的暂存站点使用的是不同的数据库,那么它并没有真正检查所有内容?如果你坚持这样做,请备份数据,删除 postgres_data,然后使用空数据库重建容器,再恢复备份。

但你真正应该做的是创建新的 pg18 服务器,将暂存站点指向该服务器以验证其正常工作,然后将生产站点迁移到该服务器。

1 个赞

我在更新时收到了以下错误信息:

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,如果迁移成功且一切正常,可以可选地运行 ./launcher cleanup

希望这能帮到你。:slight_smile:

4 个赞

我在 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': connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory (ActiveRecord::ConnectionNotEstablished)
[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]         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': connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory (PG::ConnectionBad)
[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]         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 专家。

2 个赞