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を追加した。
これで正常にマイグレーションできた。