ホームページ  >  記事  >  バックエンド開発  >  Gorm アプリケーションが DSN を無視して Mac 上の Docker コンテナ内の PostgreSQL に接続できない

Gorm アプリケーションが DSN を無視して Mac 上の Docker コンテナ内の PostgreSQL に接続できない

王林
王林転載
2024-02-09 09:12:10878ブラウズ

Gorm 应用程序无法连接到 Mac 上 docker 容器中的 PostgreSQL,忽略 DSN

php エディタ Xiaoxin は最近、Mac 上の Gorm アプリケーションを使用して Docker コンテナ内の PostgreSQL に接続する際の接続の問題に遭遇しました。具体的なパフォーマンスは、DSN が無視されることです。 DSN はデータソース名の略称で、データベース接続情報を指定するために使用されます。データベースに接続できないとアプリケーションが正常に動作しなくなるため、この問題は私を際限なく悩ませます。次に、私が遭遇した問題とその解決策を共有し、皆さんのお役に立てればと思います。

質問内容

シンプルな gorest API を作成してみます。データベース処理に gorm ライブラリを使用していますが、コンテナ内のデータベースに接続できません。これは Apple チップ上の Docker に問題があるのではないかと思いますが、確かではありません。基本的に同じセットアップを使用する別のプロジェクトがありますが、データベースへの接続にまったく問題はありません。

基本的に、接続パラメータは、DSN 文字列を無視して、実行時に完全に変更されるようです

これは docker-compose.yml:

リーリー

これはデータベース接続を行う部分です:

リーリー

dsn パラメータは、docker.env で構成されたパラメータと一致します。 pgadmin は問題なく接続を確立できます。

これは私が受け取ったエラーです。何らかの理由で接続パラメータが完全に変更されたようです:

リーリー

dsn 文字列の最後の部分を変更し、コンテナを削除して再作成しようとしましたが、それでも成功しませんでした。

解決策

私は単純に、dsn 文字列が mysql と同じ形式であると想定していました。代わりに、次のようになります:

リーリー

以上がGorm アプリケーションが DSN を無視して Mac 上の Docker コンテナ内の PostgreSQL に接続できないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。