我想在 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/