'bundle exec rails c' で Postgres 接続エラー

コンソールからフォーラムの設定を変更しようとしています。まだあまりやったことがないので、フォーラムで似たような質問を検索しました。

残念ながら、「bundle exec rails c」を実行すると、この行で終わるエラー トレースが表示されます。

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

何が起こっているのか、何か考えはありますか?フォーラム自体は正常に動作しています。数日前に最新バージョンにアップデートしたばかりです。

サーバーからレールコンソールにアクセスするには、以下を使用します。

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

このトピックにサイト設定を変更する例があります。Enable setting to allow admins to permanently delete data (これは非表示の設定ですが、方法は同じです)

「いいね!」 2

ありがとうございます。おそらく両方を混同していたのでしょう。アプリ内で bundle exec を実行していました。

それでも苦労しています。prometheus exporter plugin の IP 正規表現を変更したいと考えています。

どの構文を使用するのが適切か分かりません。バックスラッシュのエスケープや引用符で囲むなどして、SiteSetting.prometheus_trusted_ip_allowlist_regex=1.2.3.4 を試しましたが、何も機能しませんでした。1.2.3.4 は実際の IP のプレースホルダーです。

実は構文の問題ではないことに気づきました

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

@sam が手伝えるかもしれません。それとも、私が本当にここで間違っているのでしょうか。:thinking:

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX および ENV 変数を app.yml ファイルに設定する必要があります。

「いいね!」 1

もし私が間違っていたら訂正してください。実行時に設定できると思っていました。したがって、まず app.yml で設定してから、実行時に変更できるようにする必要があるということでしょうか?

フォーラムは非常に混雑しているので、永続的に ENV に設定する前に、まず実行時に設定できることを願っていました。

構文について何かヒントはありますか?これは単に次のようなものになりますか?

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

実行時の変更はできません。ENV経由のみです。

Rubyの正規表現オブジェクトです。https://rubular.com/ を参照してください。

はい、それで動作します。

「いいね!」 2