以前作ったアプリが開発環境に問題が出てしまい、(AWSのターミナルが使えなくなりました)
https://qiita.com/acro_y/items/84f4d759ed01cee4bf52
そのためgit cloneをしてローカルで作り直すもとにかくエラーを吐き続けていましたが
やっとこの度エラーが解決できたのでまとめてみたいと思います。
#herokuでデプロイ後、開発環境のエラー勃発
この時点でherokuは使えるものの、2つのherokuのurlを有していました。
一つは最初に用意していた分、もう一つはエラーが止まらなかったので作り直した分。
そしてheroku自体は使える状態ではありましたので、エラーで止まっている方のurlを削除したところ
→互換性が何かあったのか、もう一方のherokuのurlのappも動かなくなってしまいました。
なんとか、herokuのappの復旧(この部分は色々やりすぎて思い出せない)
AWSのcloud9を使用していましたが、free spaceが無いということでターミナルが使えなくなりました。そのためAWSで新たなワークスペースを作る必要がありましたが、AWSのエラーは本当にこりごりだったので今度はローカルで作ることにしました。
#ローカルで作成の際Rubyのバージョンを上げた
最初、Ruby2.4.0で開発していました。
git cloneした時点でエラーが発生していましたので
単純にアップデートした方が何かと良いのではという、初心者ならではの根拠のあまり無い考えで最新の2.6.3にアップデート。
そうすることで今度はさらに多くエラーが出てしまいました。rails sしてもエラーを吐き続ける状態です。主にbootsnap関連のエラーです。
どうやらローカルであげたバージョンと他のgemと、何かしらのコンフリクトを起こしているらしい、、、!?
railsのバージョンもあげたり、とにかくエラーをググってみたりしてみましたがそのエラーは消えず。
すでに使ってくださってるユーザーさんもいたためherokuのコマンドが使えるまでは復旧できたので
herokuはロールバックしました。
(この時点でgithubにあげてる分と差異があります)
#git clone後に環境変数の設定を忘れていた。
herokuにそもそも環境変数の設定をするのを忘れていました。
git cloneし、新たにherokuで新しいURLになったため、herokuに環境変数がsetされていない状況でした。それらをセットし直しました。
$ heroku config:set AWS_ACCESS_KEY_ID=[自分のID]
$ heroku config:set AWS_SECRET_ACCESS_KEY=[自分のシークレットキー]
#githubをエラーが出てなかったところまで思い切ってロールバックする
何度git cloneをした事でしょうか。。。
これはgithubにあげてるcommitの本番環境も開発環境もエラーが出ていなかったところまで思い切って戻すことにしました。この時点でrails sコマンドは使えるようになりました。
#git cloneし、ローカルでrubyバージョンを初期状態に戻す
しかし、開発環境自体は使えるようになったものの、herokuにデプロイしてもアプリケーションエラーが止まらない。
Mentaというサービスでメンターさんに相談したところ、rubyのバージョンを戻してしまえば直るかもしれない。というアドバイスで、2.6.3にあげていたRubyをローカルのファイルではすでに2.4.0に戻し、
ローカルでも同じように戻しました。
そしてrubyのバージョンを戻したのにおかしい、、
$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin17]
だけどまだエラーがでる。。ということでgemfile.lockのファイルに
RUBY VERSION
ruby 2.6.3p62
BUNDLED WITH
2.0.2
これが悪さをしていたみたいです、、、!
これを決して、bundle installします。
bundle installをするとエラーが出ましたので、今度は
$bundle update
そしてgithubにpushした後
$ git push heroku master
で無事heroku にデプロイ後のアプリケーションエラーが消えました!
#やったことまとめ
- herokuに環境変数設定し直す
- gitのcommitを確認して、エラーが出てなかったところまでロールバックする(注意必要)
- rubyのバージョンを下げる
- gemfileだけでなくruby.rbファイルをruby下げ直したバージョンに書き直す、gemfile.lockの元のバージョンの記載があれば削除
ものすごく遠回りしましたが、エラーを読んでもググってもなかなか意味がわからなかった部分が多く
「なんだかわからないけどこうなった、、、」ってところがまだまだたくさんあります。
課題は残りますがなんとか開発が続けられるようになりました。
新しいURLはこちらです。
↓
Poletricks