Heroku + Rails + MySQL のデプロイ関連まとめ(Rails5)

f:id:tamboblog:20180829153014p:plainHerokuでMySQLを使ったRailsアプリをデプロイする際に役に立つ記事をまとめました。

先日、初めてアプリをHerokuにデプロイしました。

(TECH::EXPERTのカリキュラムではAWSへのデプロイを行いました)。  

HerokuでのデプロイはAWS比較、簡単なんですが、 とはいえ、いくつかの記事を参照し、エラー対処もありと、色々ググる必要はありました。

そこで、今回参考にした記事や対処したエラー、使ったコマンドなどをまとめてみました。

全体的な流れ

Heroku入門 (全12回) - プログラミングならドットインストール
  • railsのアプリをHerokuにデプロイする流れが動画でまとまってます。
  • PaaSの概念のまとめから始まり、かつ動画で流れを見れるので、最初にこれで大きな流れを知っとくと進めやすいんではないかと思います。
  • ただ、動画内では使うDBがHerokuでデフォルトで使われるDBであるPostgresなので、MySQLを使う場合は、その点については他記事を参照する必要があります
Heroku + MySQL + Rails + Mac とりあえず構築まで
  • MySQLを用いたアプリのHerokuデプロイに必要な手続きが書かれています。
  • 基本的にはこの記事の流れに沿って進めていきましょう。
  • 記事内では rails new でアプリを作るところから始まっているので、アプリをすでに作っている人はそこを飛ばして読みましょう。
herokuアプリケーションの名前を変更する
  • Herokuでは Heroku create のタイミングで最初にアプリ名が自動で決まります。
  • 記事内の 1.Herokuアプリの名前を変更するを行うと、自動でURL及びherokuのリモートの名前も変わります。

エラー対応

rake aborted! Uglifier::Error: Unexpected character '`' のエラー
  • アプリのコードの中で「 `(バッククォート) 」を使っているとこのようなエラーがデプロイ時に出てきます。
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 102
  • MySQLにつなぐことができずにmigrateができなくない!というエラーです。
  • ルートディレクトリ傘下にあるファイルを編集します。
  • デフォルトでは書き込みの権限がないので、僕はsudoつけて編集しました。
Yarn executable was not detected in the system が表示される
  • assets:precompileをしようとすると、yarnを入れろ、と言われました。
  • このエラーが出たんですが、結局brew install yarn でyarnをインストールしたころ無事解決しました。 console $ brew install yarn

お役立ちコマンド

エラーログ確認
  • 何かしらのエラーがあると、この画面が表示されます。僕も何度も出くわしました。笑 Heroku error
  • まずは画面に出ているようにエラーログを見てみましょう。
$ heroku logs --tail  


コンソール起動
  • またconsoleを開くと、よりエラーがわかりやすく見える場合もあります。 もちろん、コンソールで動作確認も可能です。
$ heroku run console


再起動
  • あとは困った時の再起動。笑
 $ heroku restart --app アプリ名


最後に

  • 以上が自分がHerokuでのデプロイをした際に参考にした記事及び役に立ったコマンドです。 このまとめがHerokuデプロイ初心者の方々のお役に立てば幸いです!