Herokuにデプロイしたアプリの更新
前回デプロイしたアプリケーションについていくつか更新をしたのですが、GitHubにpushしても自動デプロイされてなかったので、アプリが停止している状態では更新されないのではとか、色々と解釈を間違えている部分があったのではないか、検索不足の部分があったのでは?ということで、少し調べてみました。
実際に行ったこと
とりあえずログイン
% heroku login
コマンドを叩いたら起きるのかな?とかまぁ分からんなりに打ってみる。
% heroku ps
プロセスの確認ができるコマンド。とりあえず現状は起動できているようでした。
参考にさせていただいた記事
Herokuのアプリケーションの停止 / 再開
他にも自分でcurlコマンドを打って確認するなど方法があるようです。
何かあったらまた参考にしようかと。
で、自動でできないのであれば手動で行うか〜ということで
% git push heroku master
エラーが吐き出された。
なるほど、自動デプロイ自体は行われてたのだけど失敗して更新できてなかったというのがわかった。
GitHubのリンクに問題がないか念のため確認したのですが、Herokuのブラウザのアプリ各個ページのOverviewタブにてBuild failed/Yesterday at 〜
となっていたことから、昨日のタイミングで失敗して更新できてないことも分かった。
で、エラーが最初に返された(と思っていた)Precompiling assets failed.
について検索。
参考にさせていただいた記事
Herokuにpushしたらprecompile assets faild.が。pushできたと思ったらApplication Errorが。解決するまで。
こちらにあるようなcss関連については全てscssで統一していた為、問題ないというのは分かっていたのですが、読み進めていたらエラ〜ログのずっと前にエラーが出ていた部分があるようなので、自分も確認してみました。
完全に見逃していました。ES6っていうのがJavaScriptのバージョンというのは分かるけど、何が関係あるのと思って再びググる君。
参考にさせていただいた記事
【Rails】ES6が原因でHerokuへのデプロイ失敗 Uglifier::Error: Unexpected token:~
最初の方にサクッと書いてくれてます。
ようは、ES6から使えるlet
を記述すると自動的にES6のバージョンとみなされ、そのES6はUglifier
というgemはES5までしか対応してないのでエラーが返っている状態とのことでした。
サイトにあるように環境設定ファイルを変えるか、今回の僕のアプリのようにlet
を使っている場所が少なかったり、規模が小さい物ならそのコード自体を書き換えることで対応できました。
書き換えて、GitHubにpushしてみた所、そのままHeroku Appに自動でデプロイがされたのが確認できました。
今回の更新ではDB情報を少し書き換えたものがデプロイされてるので、
% heroku run rake db:migrate:status
で、Heroku上のアプリケーションのマイグレーションファイルの状況の確認。
% heroku run rake db:migrate // 問題なく移行完了、一応確認 % heroku run rake db:migrate:status
// 一通り終わったらログアウトしておく % heroku logout
とりあえず今回はこれだけ!
したらな❗️ 👋