Erro de conexão Postgres em 'bundle exec rails c'

Estou tentando alterar algumas configurações do fórum através do console. Ainda não fiz isso muitas vezes, então procurei por perguntas semelhantes no fórum.

Infelizmente, ao executar ‘bundle exec rails c’, recebo um rastreamento de erro que termina com esta linha:

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

Alguma ideia do que está acontecendo aí? O fórum em si funciona bem - acabei de atualizar para a versão mais recente outro dia.

Eu acesso o console do Rails a partir do servidor usando:

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

Há um exemplo de como alterar uma configuração do site neste tópico, Enable setting to allow admins to permanently delete data (este é um oculto, mas o método é o mesmo)

2 curtidas

Obrigado, acho que misturei os dois - eu estava executando bundle exec de dentro do aplicativo.

Ainda estou com dificuldades. Estou querendo mudar a regex de IP para o plugin exportador do Prometheus.

Não tenho certeza de qual sintaxe é boa para usar. Tentei

SiteSetting.prometheus_trusted_ip_allowlist_regex=1.2.3.4 com barras invertidas escapadas e aspas ao redor, mas nada funcionou. 1.2.3.4 sendo um placeholder do meu IP real.

Na verdade, acabei de notar que provavelmente não é um problema de sintaxe

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

Talvez o @sam possa ajudar com isso. Ou eu realmente estou cometendo um erro aqui. :thinking:

Você deve definir DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX e uma variável de ambiente no seu arquivo app.yml.

1 curtida

Corrija-me se estiver errado, mas pensei que poderia defini-lo em tempo de execução primeiro. Então, preciso defini-lo em app.yml primeiro para poder modificá-lo em tempo de execução?

O fórum está bastante movimentado, então eu esperava poder defini-lo em tempo de execução primeiro antes de defini-lo permanentemente no ENV.

Alguma dica sobre a sintaxe? Pode ser apenas

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

Sem alterações em tempo de execução, apenas via ENV.

É um objeto Regex do Ruby, veja https://rubular.com/

Sim, isso funciona.

2 curtidas