我想在Google App Engine灵活环境中运行一个灵丹妙药应用程序。
我还有一个在谷歌云SQL上运行的postgresql服务器。
我能够在 docker 容器内部署应用程序。问题是我找不到如何配置与 postgresql 服务器的连接。
据我了解,应用程序引擎实例运行云SQL代理,但我在实例中不断收到以下错误:[错误]Postgrex.Protocol (#PID<0.232.0>( 连接失败: ** (DBConnection.ConnectionError( TCP connect (localhost:5432(: 连接被拒绝 - :econndeny
我在使用凤凰/灵药应用程序时遇到了同样的错误,我正在尝试从容器引擎转移到应用程序引擎灵活环境中,只是无法弄清楚使用什么作为主机名。
在应用程序引擎中的PHP应用程序中,我可以将:/cloudsql/projectname:region:dbname
用于同一数据库,但是对于Elixir 来说似乎并非如此
我还尝试直接使用云 sql 实例的 IP 地址,但这也不起作用。
在我的应用程序中,我有
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