Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku Ruby version won't upgrade?

I am struggling changing Ruby versions on Heroku. I use Ruby 2.0.0 with rails 4.

My Gemfile has:

source 'https://rubygems.org'
ruby '2.0.0'
...

The path in Heroku points to:

$ heroku config -s | grep PATH
PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin

When I pushed my app, I could see:

Fetching repository, done.
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 431 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)

-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
       Using rake (10.1.1) 
       Using i18n (0.6.9)
       Using minitest (4.7.5)
       Using multi_json (1.8.2)
       Using atomic (1.1.14)
       Using thread_safe (0.1.3)
       Using tzinfo (0.3.38)
       Using activesupport (4.0.0.rc1)
       Using builder (3.1.4)
       Using erubis (2.7.0)
       Using rack (1.5.2)
       Using rack-test (0.6.2)
       Using actionpack (4.0.0.rc1)
       Using mime-types (1.25.1)
       Using polyglot (0.3.3)
       Using treetop (1.4.15)
       Using mail (2.5.4)
       Using actionmailer (4.0.0.rc1)
       Using activemodel (4.0.0.rc1)
       Using activerecord-deprecated_finders (1.0.3)
       Using arel (4.0.1)
       Using activerecord (4.0.0.rc1)
       Using addressable (2.3.5)
       Using bcrypt-ruby (3.1.2)
       Using coffee-script-source (1.6.3)
       Using execjs (2.0.2)
       Using coffee-script (2.2.0)
       Using thor (0.18.1)
       Using railties (4.0.0.rc1)
       Using coffee-rails (4.0.0)
       Using orm_adapter (0.5.0)
       Using warden (1.2.3)
       Using devise (3.0.4)
       Using excon (0.25.3)
       Using geocoder (1.1.9)
       Using gmapsjs (0.2.30.1)
       Using heroku-api (0.3.15)
       Using launchy (2.4.2)
       Using netrc (0.7.7)
       Using rest-client (1.6.7)
       Using rubyzip (1.1.0)
       Using heroku (3.2.1)
       Using hike (1.2.3)
       Using jbuilder (1.0.2)
       Using jquery-rails (3.0.4)
       Using jquery-ui-rails (4.1.1)
       Using json (1.8.1)
       Using libv8 (3.16.14.3)
       Using nifty-generators (0.4.6)
       Using pg (0.17.1)
       Using bundler (1.3.2)
       Using tilt (1.4.1)
       Using sprockets (2.10.1)
       Using sprockets-rails (2.0.1)
       Using rails (4.0.0.rc1)
       Using rails_serve_static_assets (0.0.2)
       Using rails_stdout_logging (0.0.3)
       Using rails_12factor (0.0.2)
       Using rdoc (3.12.2)
       Using ref (1.0.5)
       Using sass (3.2.13)
       Using sass-rails (4.0.0)
       Using sdoc (0.3.20)
       Using therubyracer (0.12.0)
       Using turbolinks (2.1.0)
       Using uglifier (2.4.0)
       Using will_paginate (3.0.5)
       Your bundle is complete! It was installed into ./vendor/bundle
       Bundle completed (0.46s)
       Cleaning up the bundler cache.
       Removing rails_log_stdout (01b5bcc572e3)
       Removing rails3_serve_static_assets (84910ceb4ca2)
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       Asset precompilation completed (3.59s)
       Cleaning assets
-----> Discovering process types
       Procfile declares types -> (none)
       Default types for Ruby  -> console, rake, web, worker

-----> Compressing... done, 33.3MB
-----> Launching... done, v17
       http://rocky-shore-1207.herokuapp.com deployed to Heroku

To [email protected]:rocky-shore-1207.git
   05cf948..73b6cfa  master -> master

Since Heroku said Using Ruby version: ruby-2.0.0, it detected my Ruby version. However, when I run $ heroku run rake db:migrate or heroku run 'ruby -v' it returned:

Your Ruby version is 1.9.2, but your Gemfile specified 2.0.0

How can I change the Ruby version to 2.0.0 on Heroku?

Conclusion: I noticed my rails app had .bash_profile file but it had a wrong path. The path disturbed my heroku path for the ruby version.

Thank you for the help everyone :)

like image 500
Ryutaro Matsuda Avatar asked Oct 03 '22 01:10

Ryutaro Matsuda


2 Answers

Did you execute: bundle update locally and then committed the file Gemfile.lock?

The server is using Ruby 2, but the app is still configured to use the old version if the new lock file is not pushed.

Review the running version:

$ heroku run console
> RUBY_VERSION

If the version is correct, the one you specified, then you have a bundler problem. Just reinstall it.

gem install bundler

I recommend a full and clean build:

bundle clean --force
gem install bundler
bundle install
like image 96
givanse Avatar answered Oct 12 '22 21:10

givanse


you are using Bundler version 1.3.2

Make sure you upgrade to version Bundler 2.0+

Then bundle one last time and push your changes to Heroku

I hope that helps..

like image 28
Galuga Avatar answered Oct 12 '22 21:10

Galuga