Ошибка подключения к Postgres при выполнении 'bundle exec rails c'

Я пытаюсь изменить некоторые настройки форума через консоль. Я пока не делал этого часто, поэтому поискал похожие вопросы на форуме.

К сожалению, при выполнении команды 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)

Есть ли у кого-нибудь идеи, что здесь происходит? Сам форум работает нормально — я только на днях обновился до последней версии.

Я получаю доступ к консоли Rails с сервера с помощью:

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

Пример изменения настройки сайта приведён в этой теме: Enable setting to allow admins to permanently delete data (в данном случае это скрытая настройка, но метод тот же).

Спасибо, я, кажется, перепутал оба варианта — я запускал bundle exec внутри приложения.

Всё ещё не могу справиться. Я хочу изменить регулярное выражение для IP в плагине экспортера Prometheus.

Не уверен, какой синтаксис лучше использовать. Я пробовал

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 и переменную окружения в вашем файле app.yml.

Поправьте меня, если я ошибаюсь, но мне казалось, что сначала можно задать это во время выполнения. Значит, мне нужно сначала установить это в app.yml, чтобы затем иметь возможность изменять это во время выполнения?

Форум сейчас довольно загружен, поэтому я надеялся сначала задать это во время выполнения, прежде чем фиксировать это в ENV навсегда.

Есть ли какие-то подсказки по синтаксису? Может ли это быть просто так:

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

Изменений во время выполнения нет, только через ENV.

Это объект Ruby Regex, см. https://rubular.com/

Да, это работает.