Heroku:找不到Rakefile(但在本地工作)
我使用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 `
当我运行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]
我的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
我的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
你必须推送到主分支。 从上面的评论看,你看起来并没有这样做。
因此,假设您正在主分支中开发应用程序,您可以使用以下简单部署:
git push heroku master
如果您没有使用以下方式开发master部署:
git push heroku your_branch_name:master
将your_branch_name替换为您正在使用的分支的名称。
所以我的登台分支已经克隆并准备部署
我为heroku app heroku git:remote -a heroku-webapp-name-here
添加了一个遥控器heroku git:remote -a heroku-webapp-name-here
然后我试图做这样的事情:(并且没有工作) git push heroku staging
最后运行这个工作喜欢一个魅力: git push heroku staging:master
问题是,如果你查看heroku仪表板,你会发现heroku应用程序不是ruby