Erreur de connexion Postgres sur 'bundle exec rails c'

J’essaie de modifier certains paramètres du forum via la console. Je ne l’ai pas encore beaucoup fait, j’ai donc recherché des questions similaires sur le forum.

Malheureusement, lors de l’exécution de ‘bundle exec rails c’, j’obtiens une trace d’erreur qui se termine par cette ligne :

/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)

Une idée de ce qui se passe ? Le forum fonctionne bien - je viens de le mettre à jour vers la dernière version l’autre jour.

J’accède à la console Rails depuis le serveur en utilisant :

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

Il y a un exemple de modification d’un paramètre de site dans ce sujet, Enable setting to allow admins to permanently delete data (celui-ci est caché, mais la méthode est la même)

2 « J'aime »

Merci, je suppose que j’ai confondu les deux - j’exécutais bundle exec depuis l’application.

J’ai toujours du mal. Je cherche à modifier l’expression régulière d’IP pour le plugin d’exportation Prometheus.

Je ne suis pas sûr de la syntaxe à utiliser. J’ai essayé

SiteSetting.prometheus_trusted_ip_allowlist_regex=1.2.3.4 en échappant les barres obliques inverses et les guillemets autour, mais rien n’a fonctionné. 1.2.3.4 étant un espace réservé pour ma vraie IP.

En fait, je viens de remarquer que ce n’est probablement pas un problème de syntaxe

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

Peut-être que @sam peut aider avec ça. Ou alors je fais vraiment une erreur ici. :thinking:

Vous devez définir DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX et une variable d’environnement dans votre fichier app.yml.

1 « J'aime »

Corrigez-moi si je me trompe, mais je pensais pouvoir le définir à l’exécution d’abord. Donc, je dois d’abord le définir dans app.yml pour pouvoir ensuite le modifier à l’exécution ?

Le forum est assez chargé, donc j’espérais pouvoir le définir à l’exécution d’abord avant de le définir de manière permanente dans l’ENV.

Des indices sur la syntaxe ? Cela peut-il juste être

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

Aucune modification à l’exécution, uniquement via l’ENV.

C’est un objet Regex Ruby, voir https://rubular.com/

Oui, cela fonctionne.

2 « J'aime »