0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

heroku DBをclearDBからjawsdbに入れ替える話

Last updated at Posted at 2020-12-31

入れ替えた経緯

  • herokuにデプロイしたWEBアプリのDBにcleardbで使用
  • 一つのテーブルにtimestamp型のカラムが複数あり、それぞれデフォルト値をCURRENT_TIMESTAMPに設定し利用しようとすると、問題発生。
  • cleardbのMySQLバージョンが5.5.6より低いため複数カラムにデフォルトCURRENT_TIMESTAMPが設定できない
  • そのため、バージョンを指定できるjawsdbに入れ替えた。

手順

herokuにアプリが存在していることを確認。

heroku apps

heroku configでDB_NAMEを確認

heroku config

cleardbで作成したデータベースの削除

heroku addons:destroy cleardb --confirm あなたのアプリの名前

(ゴミ掃除として)cleardbの設定を削除

heroku config:unset DATABASE_URL
heroku config:unset CLEARDB_CRIMSON_URL
heroku config:unset CLEARDB_DATABASE_URL

jawsdbを作成

heroku addons:create jawsdb:kitefin -a fpl-official --version=8.0

追加された環境変数をmysql2用に書き換え。

# before (heroku config実行)
JAWSDB_URL:               mysql://~

# コマンド
heroku config:set JAWSDB_URL="mysql2:~"

# after
JAWSDB_URL:               mysql2://~

事後確認

# ~は伏せ字
% heroku config       
=== あなたのアプリの名前 Config Vars
DB_HOSTNAME:              ~
DB_NAME:                  ~
DB_PASSWORD:              ~
DB_PORT:                  3306
DB_USERNAME:              ~
JAWSDB_URL:               mysql2://~
LANG:                     en_US.UTF-8
RACK_ENV:                 production
RAILS_ENV:                production
RAILS_LOG_TO_STDOUT:      enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:          ~

ローカル環境でテスト環境にDB作成。ridgepoleを使用

bundle exec ridgepole -c config/database.yml -E test -f db/Schemafile --apply

ローカル環境でテスト環境に投入

bundle exec rails db:seed RAILS_ENV=test

herokuにDBデプロイ。ridgepoleを使用

heroku run 'bundle exec ridgepole -c config/database.yml -E production -f db/Schemafile --apply' --app あなたのアプリ名

seedファイルの内容を初期レコードとして投入

heroku run rake db:seed
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?