LoginSignup
1
0

More than 1 year has passed since last update.

heroku run db:migrateをしたらエラーが出た

Posted at

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

を実行、で解決。

1
0
0

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
1
0