Heroku:找不到Rakefile(但在本地工作)

Lea*_*cim 10 ruby ruby-on-rails heroku ruby-on-rails-3.1

我使用Rails 3.1.3克隆了我自己的一个应用程序,在堆栈雪松上的Heroku上创建了一个应用程序,将其推送到Heroku,然后尝试运行

heroku run rake db:migrate 并收到此错误消息

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>
Run Code Online (Sandbox Code Playgroud)

我跑的时候,我在应用程序的根目录中rake db:migrate.该应用程序适用于localhost.

我有什么想法可能做错了吗?

我注意到的唯一奇怪的是,在错误信息中,它指的是 ruby/1.9.1/

但是,我使用rvm和ruby 1.9.2创建了应用程序 ruby -v

ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
Run Code Online (Sandbox Code Playgroud)

我的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
Run Code Online (Sandbox Code Playgroud)

我的gitignore文件

# 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
Run Code Online (Sandbox Code Playgroud)

Nei*_*ton 30

你必须推到主分支.通过查看上面的评论,看起来你没有这样做.

因此,假设您正在主分支中开发应用程序,您可以使用以下简单部署:

git push heroku master
Run Code Online (Sandbox Code Playgroud)

如果您没有使用以下方式开发主部署:

git push heroku your_branch_name:master
Run Code Online (Sandbox Code Playgroud)

将your_branch_name替换为您正在使用的分支的名称.