設定済みにもかかわらずPostgreSQLに接続できない

こんにちは。2.4.5 の新規インストール(アップグレードではありません)を行っています。データベースと対話する Rake コマンドを実行しようとすると、以下のエラーが発生します。

rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Google で検索すると、これは主に PostgreSQL サーバー自体が停止しており、再起動が必要であることを示しているようです。ただし、今回のケースではそうではありません。PostgreSQL は別のコンテナで実行されており、ネットワーク経由で手動接続も問題なく行えます。

注目すべき点は、ローカルソケット経由で接続しようとしていることです。しかし、config/discourse.conf には、ホスト名とポート、ユーザー名とパスワードを指定して PostgreSQL インスタンスに接続する設定が明記されています(手動接続時に使用するのと同じ認証情報です)。

このことから、discourse.conf が全く読み込まれていないのではないかと思われます。その場合、デフォルトで Unix ソケット経由の localhost 接続にフォールバックしてしまい、ローカルにデータベースが存在しないため接続できないという状況になるでしょう。これが私の最善の推測ですが、これが正しいかどうか、また正しい場合の修正方法がわかりません。

どなたか、正しい方向へのヒントをいただけますでしょうか?

なぜこのファイルを調べているのですか?これはDiscourse 公式の標準インストールを使用して本番環境に導入したものですか?

「いいね!」 1

標準インストールを行った場合、何らかの理由で web.socketed.template.yml を含めましたか?

いいえ、これは Docker 環境ではありません(別のホストです)。タグの git クローンに、DB 認証情報の追加や force_https の true 設定などの編集を加えたものです。

@pfaffman web.socketed.template.yml ファイルが見つかりません。

混乱するのは、以前はこれが動作していた(少なくともこの部分は)ことです。その後、サブディレクトリに移動し(ウェブサーバー設定もそれに向けて更新)、データベースと通信できなくなりました。なぜ片方がもう片方に影響を与えるのか、私には理解できません。

(技術的には、これは Docker を使用しない別のホスト向けのビルドプロセスです。Discourse のワンクリックインストールテンプレートを設定しようとしていますが……難航しています。)

その通りです。Discourse に関する専門知識(おそらくあなたが持っていないもの)と、あなたのローカル環境に関する専門知識(ここでは誰も持っていないもの)が大量に必要になります。幸運を祈ります。

unsupported-install タグを付けます。

「いいね!」 3

残念ながら、組織としての健全性を保つため、ここでサポートできることには限界があります。このインストールは確かに複雑なもののようですね。

「いいね!」 4