🥺
Cloud Run上でRailsからCloud SQLに接続できない時は `host: localhost` が必要かも
環境
- ruby:
3.0.1
- rails:
6.1.3
- Docker Image:
ruby:3.0.1
- MySQL(on CloudSQL):
8.0
書き方
[config/database.yml]
...
<<: *default
database: xxxx_production
username: <%= ENV['DB_USERNAME'] %>
password: <%= ENV['DB_PASSWORD'] %>
socket: /cloudsql/project_id:asia-northeast1:name
host: localhost <---- これ
説明
host: localhost
が無いと ActiveRecord::ConnectionNotEstablished: Can't connect to MySQL server on '0.0.0.0' (115)
が出て死んだ。
Google Cloudのドキュメントをいくつか見たけどこの指定は無い。自分が余計な設定を入れているか、ruby 2.XとかRails 5だと動くかもしれない。
App EngineでもCloud SQLに繋ぐ時は同じsocket指定の記述をするんだけど、同じことが起きるかもしれない。
参考
Discussion