خطأ في الاتصال 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 (هذا الإعداد مخفي، لكن الطريقة هي نفسها)

إعجابَين (2)

شكرًا، أعتقد أنني خلطت بين الاثنين - كنت أقوم بتشغيل bundle exec من داخل التطبيق.

ما زلت أواجه صعوبة. أنا أتطلع إلى تغيير تعبير عادي لعنوان 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 ومتغير بيئة في ملف app.yml الخاص بك.

إعجاب واحد (1)

صححني إذا كنت مخطئًا ولكن اعتقدت أنه يمكنني تعيينه في وقت التشغيل أولاً. لذا أحتاج إلى تعيينه في app.yml أولاً لكي أتمكن بعد ذلك من تعديله في وقت التشغيل؟

المنتدى مشغول جدًا لذا كنت آمل أن أتمكن من تعيينه في وقت التشغيل أولاً قبل تعيينه بشكل دائم في متغير البيئة.

أي تلميحات حول الصيغة؟ هل يمكن أن يكون هذا ببساطة

DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 123.145.167.189

لا تغييرات في وقت التشغيل، فقط عبر البيئة (ENV).

إنه كائن Ruby Regex، انظر https://rubular.com/

نعم، هذا يعمل.

إعجابَين (2)