git push heroku masterができた話
ようやくherokuとお友達になれました
多分普通にQiita等々で上がっている通りにやれば
git push heroku master
と打ってやれば、herokuにpushできるはずですが、僕が出たエラーとしては、
remote: !
remote: ! An error occurred while installing ruby-2.3.1
remote: !
remote: ! This version of Ruby is not available on Heroku-18. The minimum supported version
remote: ! of Ruby on the Heroku-18 stack can found at:
remote: !
remote: ! https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
remote: !
これです。
エラーを読むと、herokuさんでサポートしているrubyの最小のversionよりも開発環境で使用している、rubyのバージョンが小さいと怒られています。
つまり、rubyのバージョンを挙げてやればいいのです。
現在のrubyのバージョンを調べてやる(ruby -v)と、なんと、2.3.1。。。これは驚愕です。。。herokuさんの公式ドキュメントによるとrubyのバージョンは最低でも2.4.5は必要らしいので、そりゃエラーが出ますよね。
ここでrubyをどこで何で管理していたのかを完全に忘れてしまったので、調べます(which ruby)。
~/.rbenv/shims/ruby
が返ってきて、rbenv(アールビーエンブ)で管理しているということがわかります。 (勝手にrvmで管理していると思ってた。。。)
次に、rbenvでインストールすることがでrubyのバージョンを調べます(rbenv install -l)。
すると大量のAvailable versionが表示されます。ここでrbenv install 2.5.0を叩いてやると、なぜかalertされたので、2.5.3を叩き直すと、無事2.5.3バージョンのrubyがインストールされました。
今の段階で、rbenvの管理下には2.3.1と2.5.3のrubyがあり、2.3.1を利用するという設定になっているので、2.5.3に切り替えてやります(rbenv local 2.5.3)。
ここでrailsのファイルの中にある、gemファイルの中の、rubyのバージョン指定も2.3.0から2.5.3に書き換えてやります。
それからbundle installをしてやればokと思いきや
`find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
というエラーが出ました。
これはbundler周りなので、一旦gem uninstall bundlerを叩いてやり、
Gem 'bundler' is not installed
が返ってきたので、
gem install bundler -v 1.17.3(現段階で2.0...をのぞいて最新のもの)を叩いてやりました。
これでもう一度bundle installを叩いてやればokです。
git commit -m " "を叩いて、
git push heroku masterしてやればできました。
ちなみに、git push heroku masterした後に、heroku上で動かすためには、heroku上のデータベースもマイグレイトしてやる必要があるので、
heroku run rails db:migrate を叩いてやりましょう