postgresql - 从应用引擎实例连接到谷歌云 SQL

标签 postgresql google-app-engine elixir google-cloud-sql

我想在 google app engine 柔性环境中运行 elixir 应用程序。

我还有一个运行在谷歌云 SQL 上的 postgresql 服务器。

我能够在 docker 容器中部署应用程序。 问题是我找不到如何配置与 postgresql 服务器的连接。

据我所知,应用引擎实例运行云 SQL 代理,但我在实例中不断收到以下错误: [错误] Postgrex.Protocol (#PID<0.232.0>) 无法连接:** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused

最佳答案

我在 phoenix/elixir 应用程序中遇到了同样的错误,我试图将其移出容器引擎并移入应用程序引擎灵活的环境,只是无法弄清楚要使用什么作为主机名。

在我的应用程序引擎中的 php 应用程序中,我可以只对同一个数据库使用 :/cloudsql/projectname:region:dbname,但它似乎不适用于 elixir

我也试过直接使用云sql实例的IP地址,但还是不行。

在我的 app.yaml 中有

env_variables:
  MIX_ENV: staging
  port: 8080
  DB_ENV_POSTGRES_HOST: :/cloudsql/projectname:region:dbame
  DB_ENV_POSTGRES_USER: userman
  DB_ENV_POSTGRES_PASSWORD: password

conf/staging.exs 我有

config :guidebooks_api, GuidebooksApi.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: System.get_env("DB_ENV_POSTGRES_USER") || "postgres",
  password: System.get_env("DB_ENV_POSTGRES_PASSWORD") || "postgres",
  hostname: System.get_env("DB_ENV_POSTGRES_HOST") || "localhost",
  database: "databasename",
  pool_size: 10,
  types: GuidebooksApi.PostgresTypes

关于postgresql - 从应用引擎实例连接到谷歌云 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43958523/

相关文章:

django - 在 CI 期间在 Django 测试数据库中启用 PSQL hstore 扩展

postgresql - 创建新表时 Postgres 客户端锁定

Python "AttributeError: ' unicode' object has no attribute 'has_key' 是什么意思“

elixir - 无法将 Elixir Phoenix 作为混合版本启动

elixir - ExAws S3 - 获取上传文件的 URL

java - 调用 SQL 创建的函数时我的条件查询出现问题

windows - psql : error: could not connect to server: FATAL: password authentication failed for user

google-app-engine - App Engine Flex 的默认 VPC 防火墙规则是什么

Android 和 Google-app-engine createuploadURL - 如何传递附加参数(即电子邮件地址)

erlang - 如何从 Elixir shell 获取 Erlang 函数的帮助