我想在google app engine灵活环境中运行elixir应用程序。
我还有一个在谷歌云SQL上运行的postgresql服务器。
我能够在docker容器中部署应用程序。 问题是我找不到如何配置与postgresql服务器的连接。
据我所知,应用引擎实例运行云SQL代理但我在实例中不断收到以下错误: [error] Postgrex.Protocol(#PID< 0.232.0>)无法连接:**(DBConnection.ConnectionError)tcp connect(localhost:5432):连接被拒绝 - :econnrefused
答案 0 :(得分:0)
我正在使用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