我在使用FileUtils#sh的Rails 4應用程序中運行Rake命令時遇到問題。我使用RVM作爲我的版本管理器,似乎無法找出問題所在。我得到的錯誤是:使用rake任務與heroku進行交互
$ rake db:clone_production:to_local --trace
** Invoke db:clone_production:to_local (first_time)
** Execute db:clone_production:to_local heroku pgbackups:capture --expire -r production
Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0
rake aborted!
Command failed with status (18): [heroku pgbackups:capture --expire -r produ...]
/Users/trevor/.rvm/gems/[email protected]/gems/rake-10.1.0/lib/rake/file_utils.rb:54:in `block in create_shell_runner'
... Some more stack trace ...
其他Rake任務正常工作,如$ rake db:migrate
但我似乎不能運行shell腳本。 rake任務是這樣的:
# ./lib/tasks/db.rake
namespace :db do
...
namespace :clone_production do
desc "Clone production database to local database"
task :to_local do
sh "heroku pgbackups:capture --expire -r production"
file = "tmp/db/backup_#{ Time.now.getutc.to_s.gsub(/ /, /_/) }.dump"
sh "curl -o #{ file } `heroku pgbackups:url -r production`"
sh "pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d myapp_development #{ file }"
end
end
end
我的道路看起來不錯:/Users/trevor/.rvm/gems/[email protected]/bin:/Users/trevor/.rvm/gems/[email protected]/bin:/Users/trevor/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/trevor/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/X11/bin:/Users/trevor/workspace/adt-bundle-mac/sdk/tools:/Users/trevor/workspace/adt-bundle-mac/sdk/platform-tools
我使用這些版本Rake - 10.1.0
,Rails - 4.0.0
和ruby - 2.0.0-p195
。
#./.ruby-version
2.0.0-p195
#./.ruby-gemset
myapp
有沒有在你的項目文件夾中的'.rvmrc'文件 - 如果是這樣,這是什麼內容? –
有一個.ruby版本,它包含2.0.0-p195 – trev9065