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

여기서 무슨 일이 일어나고 있는지 아는 분이 계신가요? 포럼 자체는 정상적으로 작동하고 있습니다 - 며칠 전에 최신 버전으로 업데이트했을 뿐입니다.

다음 명령을 사용하여 서버에서 Rails 콘솔에 접근합니다:

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

이 주제에서 사이트 설정을 변경하는 예시를 볼 수 있습니다: Enable setting to allow admins to permanently delete data (이 설정은 숨겨진 설정이지만, 방법은 동일합니다)

감사합니다. 두 가지를 혼동했던 것 같습니다. 앱 안에서 bundle exec를 실행하고 있었네요.

그래도 여전히 막혀 있습니다. prometheus exporter 플러그인의 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:

app.yml 파일에 DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX와 ENV 변수를 설정해야 합니다.

틀린 말이라면 정정해 주시겠지만, 처음에는 런타임에서 설정할 수 있다고 생각했습니다. 즉, 런타임에서 수정할 수 있도록 먼저 app.yml에 설정해야 한다는 말씀인가요?

포럼이 꽤 붐비고 있어서, ENV에 영구적으로 설정하기 전에 먼저 런타임에서 설정할 수 있기를 바랐습니다.

구문 관련해서 힌트를 주실 수 있나요? 이렇게 하면 될까요?

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

런타임 변경은 불가능하며, ENV를 통해서만 설정할 수 있습니다.

Ruby Regex 객체입니다. https://rubular.com/ 를 참고하세요.

네, 그렇게 하면 작동합니다.