我已经使用GCP几天了,但我正在努力让我的Ruby on Rails应用程序连接到托管在Cloud SQL上的Postgres。
我已经设法通过云SQL代理在本地连接并执行迁移,但我还没有超越这一点。
这是我的数据库.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
我遇到了同样的问题。我忘了激活Cloud SQL API。激活它后,一切都像魅力一样工作。激活后,我不得不再次部署所有内容。
看起来CloudSQL在构建docker映像期间没有挂载,这是有意义的。我假设它从未挂载过,因为由于迁移失败,我的构建都没有完成,这让我假设数据库没有连接。
一旦我从我的 Dockerfile 中删除了迁移执行代码并构建了 Docker 映像,我就会在应用程序引擎实例中 SSH 以检查/cloudsql 目录是否存在。我目前假设 Rails 可以连接到数据库,因为我的 web 应用程序中没有收到任何错误。一旦我确认rails正在连接到Postgres云SQL,我将报告。