Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku: No Rakefile found (but works locally)

I cloned one of my own apps using Rails 3.1.3, created an app on Heroku on stack cedar, pushed the to Heroku, and then tried to run

heroku run rake db:migrate and got this error message

No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/local/lib/ruby/1.9.1/rake.rb:2367:in `raw_load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/local/bin/rake:31:in `<main>

I am in the root of the app when I run rake db:migrate. The app works on localhost.

Any ideas what I might be doing wrong?

The only thing I note that seems odd is that, in the error message, it's referring to ruby/1.9.1/

However, I created the app using rvm with ruby 1.9.2 and when I do ruby -v

ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

My Gemfile

source 'http://rubygems.org'

gem 'rails', '3.1.3'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

group :production do
  gem 'thin'
end

gem "heroku"

gem 'omniauth-facebook'
gem 'omniauth'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.5'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem "rmagick"
gem "carrierwave"
gem 'fog'
gem 'simple_form'

gem 'devise'

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', '0.8.2', :require => false
end

my gitignore file

# See http://help.github.com/ignore-files/ for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#   git config --global core.excludesfile ~/.gitignore_global

# Ignore bundler config
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3

# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
like image 830
Leahcim Avatar asked Mar 31 '12 19:03

Leahcim


People also ask

How do I run a Heroku app locally?

Running Apps Locally 1 Run your app locally using the Heroku Local command line tool. Heroku Local is a command-line tool to run Procfile -backed apps. ... 2 Set up your local environment variables. ... 3 Copy Heroku config vars to your local .env file. ... 4 Run your app locally using Foreman. ...

What is the best alternative to Heroku local?

As an alternative to using Heroku Local, you can still use Foreman to run your app locally. It’s not officially supported but if you want to use it, you can get more information by visiting the Foreman GitHub repository.

Can I use Foreman instead of Heroku local?

As an alternative to using Heroku Local, you can still use Foreman to run your app locally. It’s not officially supported but if you want to use it, you can get more information by visiting the Foreman GitHub repository. Foreman is a command-line tool for running Procfile -backed apps.

Where does Heroku pull files from GitHub?

That file exists on your local repository (your computer) but not on the remote (GitHub). Your Heroku app comes from GitHub. When you deploy the app to Heroku, it pulls your project files and package.json (to know which modules your project is ‘dependent’ on) from your GitHub repository.


1 Answers

You have to push to the master branch. From looking at the comments above it looks like you are not doing this.

Therefore, assuming you're developing your application in the master branch, you can deploy with a simple:

git push heroku master

If you're not developing on master deploy with:

git push heroku your_branch_name:master

replacing your_branch_name with the name of the branch you're using.

like image 168
Neil Middleton Avatar answered Sep 21 '22 12:09

Neil Middleton