GCPの準備
- プロジェクトを作成
- APIを有効化 Cloud SQL を有効化(確認?)
- APIを有効化 Cloud SQL APIを有効化
- Cloud SQLでインスタンスを作成
- AppEngineを有効にする
- Cloud IAMの設定を行い、buildできるようにする(app_engineのbuild時にcloudsqlを操作できるようにする)
$ gcloud projects add-iam-policy-binding [project_id] \
--member=serviceAccount:[project_number]@cloudbuild.gserviceaccount.com --role=roles/editor
Railsのプロジェクトの準備
1. secret_keyを生成(後ほどyamlに記述します。)
$ bundle exec bin/rails secret
2. assetsのコンパイル
$ bundle exec bin/rails assets:precompile
3. app.yamlを追加
app.yml
entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby
env_variables:
SECRET_KEY_BASE: [SECRET_KEY]
4. db情報の追記(config/database.yml)
プロダクジョンに以下のを追記
conf/database.yml
username: "[YOUR_MYSQL_USERNAME]"
password: "[YOUR_MYSQL_PASSWORD]"
socket: "/cloudsql/[YOUR_INSTANCE_CONNECTION_NAME]"
デプロイ
1. [YOUR_INSTANCE_CONNECTION_NAME]を調べる
$ gcloud sql instances describe [インスタンスID]
2. データベースの準備 1 create
$ bundle exec rake appengine:exec -- bundle exec rake db:create
or
$ gcloud beta sql connect [インスタンスID] --user=[username] --password
> create database [database_name]
3. データベースの準備 2 Migration
$ bundle exec rake db:migrate
$ bundle exec rake appengine:exec -- bundle exec rake db:migrate
4. デプロイ
$ gcloud app deploy --no-promote