9
3

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】デプロイ後エラー対処 Could not load the 'mysql' Active Record adapter.

Last updated at Posted at 2020-10-03

起きたこと

RailsでWebAPIを作成しHerokuにデプロイしたつもりが、ブラウザの表示はこうなった↓

スクリーンショット 2020-10-03 16.11.47.png

とりあえず$ heroku logs --tailしてねとあるので、

 ・
 ・ (省略)
 ・
2020-10-03T07:07:22.331249+00:00 app[web.1]: /usr/local/bundle/bin/puma:23:in `<top (required)>'
2020-10-03T07:07:22.468514+00:00 heroku[web.1]: Process exited with status 1
2020-10-03T07:07:22.527787+00:00 heroku[web.1]: State changed from starting to crashed
2020-10-03T07:07:23.246388+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=coko-api.herokuapp.com request_id=****** fwd=*******" dyno= connect= service= status=503 bytes= protocol=https

んー。。レスポンスが503なのはわかるけどもう少し踏み込んで$ heroku run rails cすると、

 ・
 ・ (省略)
 ・
Could not load the 'mysql' Active Record adapter. Ensure that the adapter is spelled correctly in config/database.yml and that you've added the necessary adapter gem to your Gemfile. (LoadError)

お、MySQLの設定周りでエラーが起きてるようです。以下翻訳↓

'mysql' ActiveRecordアダプターをロードできませんでした。 アダプターのスペルがconfig / database.ymlで正しく設定されていること、および必要なアダプターgemがGemfileに追加されていることを確認してください。 (LoadError)

このエラーで調べていたところ、大体2パターンあったので、対処をまとめます。

パターン1. そもそもGemfileに設定してない

ここまで気がつかないのは稀でしょうけれど、一応確認しておきましょう。

Gemfile
gem 'mysql2'  # << 追記

修正したらデプロイ

パターン2. Herokuの環境変数にミス

Railsアプリでherokuを使うときのDBをMySQLに変更するを参考に環境変数を確認。

$ heroku config
=== coko-api Config Vars
CLEARDB_DATABASE_URL:  mysql://***:***@***.cleardb.com/heroku_***?reconnect=true
DATABASE_URL:          mysql://***:***@***.cleardb.com/heroku_***?reconnect=true
 ・
 ・ (省略)
 ・

一見合っているかと思いきや。。。

DATABASE_URLの先頭がmysql2じゃなくmysqlになってる!!

$ heroku config:setで修正(CLEARDB_DATABASE_URLの方はmysqlのままでOK)

$ heroku config:set DATABASE_URL='mysql2://***:***@***.cleardb.com/heroku_***?reconnect=true'

修正したら、デプロイせずにそのまま反映されます。

スクリーンショット 2020-10-03 17.01.27.png

自作APIからのレスポンスを確認できました〜

僕の場合パターン2に引っかかってました。

9
3
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
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?