堆栈级别太深 - 使用Rake时

时间:2012-08-05 16:34:52

标签: ruby-on-rails ruby ruby-on-rails-3 rake rvm

当我尝试预制耙子时,我得到以下内容。我尝试了一些修复像爆炸并重新安装我的rvm - ruby​​(v1.9.3-p125),但似乎没有任何工作。有什么想法吗?

rake db:seed --trace
** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
rake aborted!
stack level too deep
/Users/rm/.rvm/gems/ruby-1.9.3-p125@global/gems/rake-0.9.2.2/lib/rake/task.rb:162
Tasks: TOP => db:seed

如果我尝试运行rake db:reset --trace

-- initialize_schema_migrations_table()
   -> 0.0025s
-- assume_migrated_upto_version(20120803181844,       ["/Users/rossmcnairn/rails/search/db/migrate"])
   -> 0.0218s
** Invoke db:structure:load_if_sql (first_time)
** Invoke db:create 
** Execute db:structure:load_if_sql
** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment 
** Execute db:abort_if_pending_migrations
rake aborted!
stack level too deep
/Users/rossmcnairn/.rvm/gems/ruby-1.9.3-p125@global/gems/rake-0.9.2.2/lib/rake/task.rb:162
Tasks: TOP => db:setup => db:seed

我检查过我的捆绑exec版本和我的常规rake版本匹配。

rake --version
rake, version 0.9.2.2

bundle exec rake --version
rake, version 0.9.2.2

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

已知更新OSX会产生红宝石问题,您应该重新编译所有红宝石:

chown -R $USER: $rvm_path
rvm get head
rvm reinstall 1.9.3-p125
rvm all-gesmsets do rvm gemset pristine

另请注意,任何其他编译的东西(如库)都需要重新编译,这包括自制软件,macports,rvm pkg以及您手动编译的所有软件包。

答案 1 :(得分:0)

** Execute db:abort_if_pending_migrations
rake aborted!

您是否尝试过迁移?

答案 2 :(得分:0)

这可能很明显,但花了我几个小时。我无意中为名为create的模型创建了一个类方法,它与ActiveRecord create相同。所以我的种子文件有循环引用。

我只是一直盯着种子文件,想知道为什么我在之前能够运行它两次之前(在添加类方法之前)得到错误。故事的道德:命名很重要。