浏览 2838 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-03
paul@RoR:~/Workspace/rails_projects/demo_app$ heroku rake db:migrate (in /app) rake aborted! uninitialized constant Rake::DSL /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>' 看来是rake的问题了,于是查了一下rake的版本 paul@RoR:~/Workspace/rails_projects/demo_app$ bundle Using rake (0.9.2) Using abstract (1.0.0) Using activesupport (3.0.7) Using builder (2.1.2) Using i18n (0.5.0) Using activemodel (3.0.7) 网上google了一下,发觉又是一个Rails和其他gem不兼容的问题,只要把rake的版本设置为0.8.7就可以了。 Rails3.0的Gem配置在文件Gemfile中设置,但是默认的不会有rake的版本指定,我们需要手工指定。修改Gemfile,增加对rake的版本指定 gem 'rails', '3.0.7' gem 'rake', '0.8.7' 这样在没有rake0.8.7这个版本时,bundle会自动去RubyForge.org下载,如果本地已经安装了则使用本地的gem 满以为这样就可以了,可是一执行bundle install还是报错 paul@RoR:~/Workspace/rails_projects/demo_app$ bundle install Fetching source index for http://rubygems.org/ You have requested: rake = 0.8.7 The bundle currently has rake locked at 0.9.2. Try running `bundle update rake` paul@RoR:~/Workspace/rails_projects/demo_app$ bundle unlock Unlock is deprecated. To update to newer gem versions, use `bundle update`. paul@RoR:~/Workspace/rails_projects/demo_app$ bundle update rake 这是为什么呢?怎么会说bundle被锁定呢?原来啊Rails为了保证应用在不同的环境下配置一样,会对Gemfile生成一个lock文件,该lock文件把当前应用的gem配置都记录下来,并一同发布出去(这里指的是GitHub),一旦其他人下载该应用后执行bundle install时会强制按照该lock文件中指定的gem版本去下载或调用,而不是使用其他人本地已经安装的gem,这样就可以保证在不同的环境下应用的特性一致。 在完成对bundle的解锁后,依次执行下列命令 git commit -a git push origin master git push heroku master 完成之后,再次执行heroku rake db:migrate,问题解决 paul@RoR:~/Workspace/rails_projects/demo_app$ heroku rake db:migrate (in /app) Migrating to CreateUsers (20110628080358) == CreateUsers: migrating ==================================================== -- create_table(:users) -> 0.0095s == CreateUsers: migrated (0.0096s) =========================================== Migrating to CreateMicroposts (20110629094445) == CreateMicroposts: migrating =============================================== -- create_table(:microposts) -> 0.0059s == CreateMicroposts: migrated (0.0060s) ====================================== 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-08
Good it works
|
|
返回顶楼 | |
发表时间:2011-08-17
今天正好碰到这个问题
ps:新手发帖好难~ |
|
返回顶楼 | |