herokuでデプロイする際にマイグレーション実行で躓いた。
heroku run rake db:migrate
でエラー
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
まずはソケットの場所を疑う(scaffoldで作ったデプロイ練習用のアプリなので可能性は低いが・・・)。
config/database.yml
のproduction:socket:のパスとmysql_config --socket
で得られるパスを確認。
/var/lib/mysql/mysql.sock
同じ。
次にheroku config
で環境変数を確認してみる。
CLEARDB_DATABASE_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:
DABASE_URL
がない。しかもCLEARDB_DATABASE_URL
の値がmysql2
になっている。
herokuCLIで設定した際になにか間違えたのか? よくわからん。
ここはherokuのpernonal/settingsでconfig Varsを追加した。
これで正常にマイグレーションできた。