Para mi empresa, necesito desarrollar algunas funcionalidades contra la API REST de nuestra instancia de Discourse. Para el desarrollo y las pruebas locales, he estado siguiendo Install Discourse for development using Docker con éxito durante bastante tiempo.
Han pasado algunas semanas desde la última vez que estuve desarrollando. Ayer quise iniciar Discourse localmente de nuevo, así que hice mi habitual git pull && d/boot_dev && d/bundle install && d/rails s. Sin embargo, el último comando d/rails s falla con el siguiente error:
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
Is the server running locally and accepting connections on that socket?
/home/discourse/.bundle/gems/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:69:in `rescue in new_client'
[...etc.]
Cuando abro una Terminal en el contenedor discourse_dev y ejecuto ls -la /var/run/postgresql/, puedo ver que, efectivamente, no hay ningún socket .s.PGSQL.5432 aquí.
Ok, así que pensé que tal vez no debería haber hecho un git pull ciegamente primero, así que revisé la etiqueta v4.4.0 e incluso la etiqueta v3.3.0 y volví a intentarlo. Pero obtengo exactamente el mismo error.
Me parece que la base de datos Postgres no se está ejecutando dentro del contenedor discourse_dev.
Lo raro es: Si clono el repositorio de Discourse en una nueva carpeta (sí, incluso el último código en la rama main) e inicio Discourse usando Docker, no obtengo este error y Discourse se inicia correctamente. Pero, por supuesto, tengo una base de datos vacía, lo cual es un poco desafortunado. Entiendo que los datos se persisten dentro de tmp/postgres, que puedo copiar de la carpeta antigua a la nueva. Pero ya no puedo hacer eso porque no lo sabía ayer, y en mis intentos de solución de problemas de ayer, eliminé todas las carpetas temporales y las carpetas node_modules y .pnpm-store, etc. Pero el problema aún persiste.
¿Alguien tiene alguna idea de lo que está pasando aquí o qué puedo hacer para solucionar esto?