Error de conexión de Postgres en 'bundle exec rails c'

Estoy intentando cambiar algunas configuraciones del foro a través de la consola. Aún no he hecho eso mucho, así que busqué preguntas similares en el foro.

Desafortunadamente, al ejecutar ‘bundle exec rails c’ obtengo un rastreo de error que termina con esta línea

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client': connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL: Peer authentication failed for user \"discourse\" (ActiveRecord::NoDatabaseError)

¿Alguna idea de lo que está pasando ahí? El foro en sí funciona bien, acabo de actualizarlo a la última versión el otro día.

Llego a la consola de Rails desde el servidor usando:

cd /var/discourse
./launcher enter app
rails c

Hay un ejemplo de cómo cambiar una configuración del sitio en este tema, Enable setting to allow admins to permanently delete data (esta es una oculta, pero el método es el mismo)

2 Me gusta

Gracias, supongo que me confundí con ambos: estaba ejecutando bundle exec desde dentro de la aplicación.

Aun así, sigo luchando. Estoy buscando cambiar la expresión regular de IP para el plugin exportador de prometheus.

No estoy seguro de qué sintaxis es buena para usar. Intenté

SiteSetting.prometheus_trusted_ip_allowlist_regex=1.2.3.4 con barras invertidas escapadas y comillas alrededor, pero nada funcionó. 1.2.3.4 siendo un marcador de posición de mi IP real.

En realidad, acabo de notar que probablemente no sea un problema de sintaxis

SiteSetting.prometheus_trusted_ip_allowlist_regex="123.145.167.189"
NoMethodError: undefined method `prometheus_trusted_ip_allowlist_regex=' for #<Class:0x000055a8093e7dd8>

Quizás @sam pueda ayudar con eso. O realmente solo estoy cometiendo un error aquí. :thinking:

Debes establecer DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX y una variable de entorno en tu archivo app.yml.

1 me gusta

Corrígeme si me equivoco, pero pensé que podría configurarlo en tiempo de ejecución primero. ¿Así que necesito configurarlo primero en app.yml para luego poder modificarlo en tiempo de ejecución?

El foro está bastante ocupado, así que esperaba poder configurarlo primero en tiempo de ejecución antes de establecerlo permanentemente en el ENV.

¿Alguna pista sobre la sintaxis? ¿Puede ser simplemente?

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

No hay cambios en tiempo de ejecución, solo a través de la ENV.

Es un objeto Regex de Ruby, ver https://rubular.com/

Sí, eso funciona.

2 Me gusta