Recomendamos que pruebes el proceso, ya que no es algo que nosotros soportemos, pero probablemente todo lo que tengas que hacer sea indicarle que actualice y funcionará correctamente.
Acabo de realizar la actualización a PostgreSQL 18 tanto para una instalación estándar como para una configuración de doble contenedor, sin ningún problema. Gracias de nuevo a @chrisr y al equipo por las instrucciones tan sencillas.
Para una configuración de doble contenedor detrás de Cloudflare CDN con cubos de subidas/copias de seguridad R2, los pasos que utilicé fueron los siguientes:
Paso 1: Limpieza de disco
# eliminar todos los datos de docker no utilizados
docker system prune -a -f
# limpiar registros antiguos y caché de apt
journalctl --vacuum-time=2d
apt-get clean
apt-get autoremove -y
# verificar el tamaño de la base de datos
du -sh /var/discourse/shared/data/postgres_data*
# verificar el nuevo espacio libre disponible
df -h -x tmpfs -x devtmpfs
Paso 2: Mantenimiento y copia de seguridad
- Editar una página de mantenimiento de Cloudflare para indicar un mantenimiento de sistema de actualización de 15-20 minutos (puede que no tome tanto tiempo, pero es mejor estar a salvo!) y establecer un temporizador de recarga de unos 30 segundos. Activar una ruta de worker de Cloudflare para mostrar la página de mantenimiento.
- Iniciar una copia de seguridad desde la línea de comandos:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
- Iniciar sesión en el panel de Cloudflare R2 y verificar la carpeta de copias de seguridad para confirmar que el archivo se subió correctamente
Paso 3: Apagado seguro
- Detener primero el contenedor web para cerrar cualquier conexión activa, y luego detener el contenedor de base de datos:
cd /var/discourse
./launcher stop web_only
./launcher stop data
- Verificar que PostgreSQL se haya detenido correctamente:
tail -n 20 shared/data/log/var-log/postgres/current
Paso 4: Reconstrucciones de actualización
Ejecutar los siguientes comandos en este orden:
./launcher rebuild data # volcar, migrar y restaurar postgresql 18
./launcher rebuild data # reconstruir el contenedor de base de datos
./launcher rebuild web_only # reconstruir la aplicación web
Paso 5: Optimización y limpieza
- Generar las estadísticas de tablas de pg18 que faltan, de lo contrario el foro será más lento de lo normal:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
- Probar el foro para asegurarse de que todo funcione; la página de mantenimiento no debería estar cargando ahora si se configuró un temporizador de recarga.
- Eliminar la ruta del worker de Cloudflare a la página de mantenimiento (¡no queremos alcanzar el límite diario de 100,000!)
- Eliminar los datos antiguos de pg18 para recuperar ese espacio en disco:
rm -fr /var/discourse/shared/data/postgres_data_old/
¡Listo!
![]()
Para la opción 1, necesitarías montar ese espacio adicional en el contenedor para que el proceso de actualización lo utilice, pero seguirías teniendo que omitir la comprobación de espacio, ¿no crees?
Creo que podría ser un problema de huevo y gallina.
Si tu sitio de staging utiliza una base de datos diferente, ¿realmente está comprobando todo? Si prefieres mantener esa configuración, haz una copia de seguridad, elimina postgres_data y reconstruye el contenedor con una base de datos vacía, y luego restaura la copia de seguridad.
Pero lo que realmente deberías hacer es configurar el nuevo servidor pg18, dirigir el servidor de staging hacia él para verificar que funciona correctamente y, a continuación, migrar el servidor de producción a él.
Recibí el siguiente mensaje de error durante la actualización:
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!
El truco para solucionarlo fue eliminar los restos antiguos de la actualización y corregir los permisos:
rm -rf /var/discourse/shared/standalone/postgres_data_new
chown -R 999:999 /var/discourse/shared/standalone/postgres_data
… Luego ejecutar ./launcher rebuild app dos veces y, opcionalmente (si la migración tuvo éxito y todo funciona correctamente), ./launcher cleanup.
Espero que esto te sea de ayuda. ![]()
Estoy ejecutando un entorno de desarrollo con DevContainers en Windows, ¿hay alguna forma de corregir este error?
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': no se pudo conectar al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432": No such file or directory (ActiveRecord::ConnectionNotEstablished)
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese socket?
[rails] no se pudo conectar al servidor en el socket "/run/postgresql/.s.PGSQL.5432": No such file or directory
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese socket?
[rails] no se pudo conectar al servidor en el socket "/tmp/.s.PGSQL.5432": No such file or directory
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese 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': no se pudo conectar al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432": No such file or directory (PG::ConnectionBad)
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese socket?
[rails] no se pudo conectar al servidor en el socket "/run/postgresql/.s.PGSQL.5432": No such file or directory
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese socket?
[rails] no se pudo conectar al servidor en el socket "/tmp/.s.PGSQL.5432": No such file or directory
[rails] ¿El servidor está ejecutándose localmente y aceptando conexiones en ese 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$
Puede ser una suposición, pero ¿Discourse los está confundiendo?
discourse@ddf88cb78939:/workspace/discourse$ sudo cat /shared/postgres_data/PG_VERSION
sudo cat /shared/postgres_data_orig/PG_VERSION
15
18
EDIT: Lo solucioné con la ayuda de ChatGPT. No soy un experto en Linux/Postgres.
Estoy teniendo un problema: Postgres 18 falta o no está migrando mi base de datos de secondsite. Cualquier ayuda al respecto será apreciada.
Tengo una corrección pendiente para las actualizaciones multisitio que fallaron; te avisaré cuando esté lista.
Acabo de integrar una corrección para los multisitios y todas las bases de datos deberían actualizarse correctamente ahora. Puedes revertir tu base de datos a su estado anterior a la actualización e intentarlo de nuevo siguiendo estos pasos:
- Confirma que los datos antiguos aún existen en
/shared/postgres_data_old. - Elimina los datos de la actualización fallida de
/shared/postgres_data(si tienes suficiente espacio en disco libre, podría ser una buena idea renombrarlos por ahora en lugar de eliminarlos). - Renombra
/shared/postgres_data_oldde nuevo a/shared/postgres_data. También deberás asegurarte de que el modo del directorio sea 0700, de lo contrario Postgres se negará a usarlo. - Inicia la actualización de nuevo ejecutando
./launcher rebuild app.
Creo que resolvieron su problema hace unas horas
Muchas gracias, muy apreciado.
Anoté esto en los mensajes de reconstrucción:
116:C 11 Aug 2026 06:43:27.336 # ADVERTENCIA: ¡Se debe habilitar el sobrecompromiso de memoria! Sin ello, una guardado en segundo plano o una replicación pueden fallar bajo condiciones de memoria baja. Al estar deshabilitado, también puede causar fallos sin condiciones de memoria baja, ver vm.max_map_count growing steadily when vm.overcommit_memory is 2 · Issue #1328 · jemalloc/jemalloc · GitHub. Para solucionar este problema, agregue ‘vm.overcommit_memory = 1’ a /etc/sysctl.conf y luego reinicie o ejecute el comando ‘sysctl vm.overcommit_memory=1’ para que surta efecto.
¿Es algo de lo que deba preocuparme?
También observo que el tamaño de mi nueva base de datos es significativamente menor que el antiguo:
root@Forum:/var/discourse/shared/standalone# du -sh postgres_data postures_data_old
6.8G postgres_data
10G postgres_data_old
17G total
¿Debería preocuparme?
¿Ese es un nombre de directorio extraño?
Para comparar, el mío quedó así:
:/var/discourse/shared/data# du -sh postgres_data postgres_data_old
4.1G postgres_data
3.4G postgres_data_old
Sí, creo que la corrección de tipo lo desfiguró de alguna manera. Es postgres_data.
Así que tus nuevos datos eran más grandes. Eso es un poco preocupante.
Ejecuté la actualización según lo indicado y todo salió muy bien. La primera reconstrucción generó un mensaje en la consola indicando que la actualización desde la versión 15 había sido exitosa, junto con la ubicación de la base de datos antigua e instrucciones para ejecutar la reconstrucción una vez más.
Gracias a la pista de Lilly
pude ver que tenía suficiente espacio en el disco
EDIT: para añadir
Gracias a todos los que trabajaron en este gran trabajo ![]()
Probablemente añadiría el comodín por si quedan restos de actualizaciones:
# comprobar el tamaño de la base de datos
du -sh /var/discourse/shared/data/postgres_data*
vrrrmmmmmm
… ![]()
Como podrán imaginar, no recibí este comunicado… ¡doh! ![]()
Pues no tenía ni idea de esta actualización de la base de datos ni de los requisitos de espacio. Al principio, el mensaje de error de Postgres indicaba que me había quedado sin espacio por 12 GB, y la aplicación no volvía a arrancar. Limpié el disco y conseguí liberar unos 6 GB, lo ejecuté de nuevo, pero sigo sin tener suerte.
No me lié con nada y volví a restaurar desde la copia de seguridad.
siempre puedes hacer un @pfaffman y mudarte a un servidor completamente nuevo y empezar con una instalación totalmente nueva de PG 18 y la última versión de Ubuntu LTS para colmo …
Gracias. Realizaré una migración de prueba para confirmar:
Mientras sigo de cerca este tema.
