【问题标题】:Systemstack error: level too deep after running db:seedSystemstack 错误:运行 db:seed 后级别太深
【发布时间】:2014-07-09 23:04:09
【问题描述】:

我在删除几个模型时有点搞砸了,所以我决定放弃我的整个表并重新运行迁移以重新开始。但是,在运行 db:seed 之后(即使种子完全为空)我收到以下错误:

** 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!
SystemStackError: stack level too deep
Tasks: TOP => db:seed

我不知道这是从哪里来的。我一直在研究这个问题,但似乎没有一个解决方案适用于我的情况。我真的不明白我应该在哪里看,所以如果需要更多信息来帮助我:请告诉我!

由于某些状态可能是 gem 的问题,这里是我的 gem 文件:

source 'https://rubygems.org'
ruby '2.0.0'

gem 'rails', '4.0.4'
gem 'bootstrap-sass', '2.3.2.0'
gem 'sprockets', '2.11.0'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

gem 'omniauth-facebook'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end

提前非常感谢您!

【问题讨论】:

  • 我猜你应该显示完整的回溯。
  • 运行rake db:seed --trace

标签: ruby-on-rails ruby rake


【解决方案1】:

您可能不小心从其定义中调用了一个方法,或者类似的东西导致了递归。

使用rake db:seed --trace 应该有助于显示哪些方法正在填满调用堆栈。如果在给您跟踪之前崩溃了,您可以尝试一些更高级的工具,例如https://github.com/tmm1/stackprof

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2011-11-11
    • 2011-10-21
    相关资源
    最近更新 更多