TaillookTech

モバイルアプリ開発を追っています

Google App Engine上のElixirからCloud SQLへ接続する

やったこと

Google App EngineにデプロイしたElixirのWebアプリからGoogle Cloud SQLへ接続する.

手順

app.yaml

env: flex
runtime: gs://elixir-runtime/elixir.yaml
runtime_config:
  release_app: myapp

beta_settings:
  cloud_sql_instances: "connection_name"

prod.secret.exs

# Configure your database
config :myapp, Myapp.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "password",
  database: "myapp_prod",
  socket_dir: "/cloudsql/connection_name",
  pool_size: 10

上記設定ののちデプロイする.
migrationはローカル側で行う.

MIX_ENV=prod mix ecto.create
MIX_ENV=prod mix ecto.migrate

開発環境でdev用DBに接続したい場合は

About the Cloud SQL Proxy  |  Cloud SQL for MySQL  |  Google Cloud

ここのcloud_sql_proxyを用いてDBへ接続する.