Google App Engine + Postgres Cloud SQL连接问题

时间:2017-07-02 04:01:16

标签: ruby-on-rails postgresql google-app-engine google-cloud-sql

我一直在使用GCP几天,但我很难让我的Ruby on Rails应用程序连接到在Cloud SQL上托管的Postgres。

我已经设法通过云SQL代理在本地连接并执行迁移,但我还没有超越它。

这是我的database.yml制作设置。

production:
  <<: *default
  adapter: postgresql
  database: databasename
  username: databaseuser
  password: databasepassword
  host: /cloudsql/project-name-172409:us-central1:application-name

这是我的app.yaml设置。

runtime: custom
env: flex

health_check:
  enable_health_check: false

beta_settings:
  cloud_sql_instances: project-name-172409:us-central1:application-name

env_variables:
  SECRET_KEY_BASE: 121212

我的自定义docker文件继承自基础ruby构建并执行迁移。

我得到的错误就是这个。

PG::ConnectionBad: could not connect to server: No such file or directory
    Is the server running locally and accepting

2 个答案:

答案 0 :(得分:1)

我有同样的问题。我忘了激活Cloud SQL API。激活之后,一切都像魅力一样。激活后,我不得不再次部署所有内容。

答案 1 :(得分:0)

看起来在构建docker镜像期间没有安装CloudSQL,这是有道理的。我假设它从未挂载,因为我的构建没有完成,因为迁移失败导致我假设数据库没有连接。

一旦我从Dockerfile中删除了迁移执行代码并构建了Docker镜像,我就可以通过SSH进入app引擎实例来检查/ cloudsql目录是否存在。我目前假设Rails可以连接到数据库,因为我的webapp中没有出现任何错误。一旦我确认rails连接到Postgres Cloud SQL,我将报告回来。