我一直在使用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
答案 0 :(得分:1)
我有同样的问题。我忘了激活Cloud SQL API。激活之后,一切都像魅力一样。激活后,我不得不再次部署所有内容。
答案 1 :(得分:0)
看起来在构建docker镜像期间没有安装CloudSQL,这是有道理的。我假设它从未挂载,因为我的构建没有完成,因为迁移失败导致我假设数据库没有连接。
一旦我从Dockerfile中删除了迁移执行代码并构建了Docker镜像,我就可以通过SSH进入app引擎实例来检查/ cloudsql目录是否存在。我目前假设Rails可以连接到数据库,因为我的webapp中没有出现任何错误。一旦我确认rails连接到Postgres Cloud SQL,我将报告回来。