Errore di connessione Postgres su 'bundle exec rails c'

Sto cercando di modificare alcune impostazioni del forum tramite la console. Non l’ho ancora fatto molto, quindi ho cercato domande simili sul forum.

Sfortunatamente, quando eseguo ‘bundle exec rails c’ ottengo una traccia di errore che termina con questa riga

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

Qualche idea su cosa stia succedendo? Il forum stesso funziona bene - è stato appena aggiornato all’ultima versione l’altro giorno.

Accedo alla console di Rails dal server usando:

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

C’è un esempio di modifica di un’impostazione del sito in questo topic, Enable setting to allow admins to permanently delete data (questo è uno nascosto, ma il metodo è lo stesso)

2 Mi Piace

Grazie, immagino di aver confuso entrambi: stavo eseguendo bundle exec dall’interno dell’app.

Ancora in difficoltà. Sto cercando di modificare l’espressione regolare IP per il plugin Prometheus Exporter.

Non sono sicuro di quale sintassi sia meglio usare. Ho provato

SiteSetting.prometheus_trusted_ip_allowlist_regex=1.2.3.4 con escape di barre rovesciate e virgolette attorno, ma non ha funzionato. 1.2.3.4 è un segnaposto del mio vero IP.

In realtà ho appena notato che probabilmente non è un problema di sintassi

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

Forse @sam può aiutarmi. O sto davvero commettendo un errore qui. :thinking:

Devi impostare DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX e una variabile d’ambiente nel tuo file app.yml.

1 Mi Piace

Correggimi se sbaglio, ma pensavo di poterlo impostare prima a runtime. Quindi devo impostarlo prima su app.yml per poi poterlo modificare a runtime?

Il forum è piuttosto affollato, quindi speravo di poterlo impostare prima a runtime prima di impostarlo permanentemente nell’ENV.

Qualche suggerimento sulla sintassi? Può essere semplicemente

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

Nessuna modifica in fase di runtime, solo tramite ENV.

È un oggetto Regex di Ruby, vedi https://rubular.com/

Sì, funziona.

2 Mi Piace