heroku run db:migrateをしたらエラーが出た
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
エラー文を見ると、ローカルのMySQLに接続できませんでした、という感じみたい。
実際にMySQLの設定を確認する。
ターミナルで
heroku config
を実行
CLEARDB_DATABASE_URL: mysql://******@us-cdbr-east-04.cleardb.com/heroku_********?reconnect=true
DATABASE_URL: mysql2
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_MASTER_KEY: ****************
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:*************
で今回問題になっているのが、
DATABASE_URL: mysql2
ここが本来であれば、URLのようなものが記述されているはずだが、記述されていない。
ということで
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
これをそれぞれ、ターミナルで実行。
再度、heroku configで確認すると
CLEARDB_DATABASE_URL: mysql://******@us-cdbr-east-04.cleardb.com/heroku_********?reconnect=true
DATABASE_URL: mysql2://******@us-cdbr-east-04.cleardb.com/heroku_********?reconnect=true
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_MASTER_KEY: ****************
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE:*************
となっており、この状態で
heroku run db:migrate
を実行、で解決。