デプロイ時に起きたエラーについて
こんにちは、今日はherokuにデプロイする際に起きたエラーについてと解決までの過程を書いていきま。
状況と、エラー内容
とはいっても、エラーに関するlogが何処かに行ってしまい、曖昧な記憶でお届けします。(じゃあ書くな)
状況として、アプリケーションをデプロイした際、本来表示されるはずのものがされず、あんたがこのオーナーならlogs見てや。のやつが出てきました。
logを確認すると
heroku[router]: at=error code=H10 desc="App crashed"
と表示、http statusは、503が出ていました。
ここで、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)
とのことで、私はスペルミスの常習犯なので、スペルを確認することに。
heroku config
でDATA_BASE_URL、CLEARDB_DATABESE_URL
を確認、
DATABASE_URL: mysql://*********
CLEARDB_DATABESE_URL: mysl://********
案の定、スペルミスってました ^o^
本来は、
DATABASE_URL: mysql2://*********
CLEARDB_DATABESE_URL: mysql://********
こうしたかった。
エラー対応
DATABASE_URLを再度設定したいので、heroku config:set DATABASE_URL='mysql2://********'
で再設定、heroku config
で確認すると、
DATABASE_URL: mysql2://*********
DATABASE_URL: mysql://*********
ありゃ?二個できてる。てことでheroku config:unset DATABASE_URL
で最初のDATABASE_URLを削除。
CLEARDB_DATABESE_URLについては、urlをコピーしておいて、先にunset
で削除してからset
で再設定。
heroku config
。
CLEARDB_DATABASE_URL: mysql:/
DATABASE_URL: mysql2:/
無事設定でき、エラーも解決しました。