mysql - 数据库 :seed not loading models

标签 mysql ruby-on-rails activerecord rake

我正在尝试使用标准的 db/seeds.rb 方法为我的数据库播种。这在我的开发机器上运行良好,但在我的服务器上,我得到:

$ sudo rake db:seed RAILS_ENV=production --trace
** Invoke db:seed (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:seed
rake aborted!
uninitialized constant Permission
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:92:in `const_missing'
/path/.../.../.../.../db/seeds.rb:4
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/tasks/databases.rake:215:in `load'
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/tasks/databases.rake:215
/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
...

但是当我检查控制台时,模型确实存在:

$ script/console production
Loading production environment (Rails 2.3.4)
>> Permission
=> Permission(id: integer, ..., created_at: datetime, updated_at: datetime)

我忘记了什么?

最佳答案

在对上面和此处链接的博客的评论中:http://www.builtfromsource.com/2011/02/09/getting-rake-dbseed-and-config-threadsafe-to-play-nice/

Bruce Adams 提到可以调用:

配置线程安全!除非 $rails_rake_task

只在不运行 rake 任务时打开线程安全。

但由于问题确实是 threadsafe 关闭了 dependency_loading,您可以简单地在 config.threadsafe 之后添加这一行!使其保持启用状态,但仍按预期加载您的环境。

config.dependency_loading = true 如果 $rails_rake_task

关于mysql - 数据库 :seed not loading models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204936/

相关文章:

ruby-on-rails - Ruby on Rails 中的数据库架构最佳实践

ruby-on-rails - Rails 模型的默认条件

mysql - 将事件记录列名称覆盖为大写

mysql - 表格太宽,无法放入 Markdown 生成的 PDF 中

mysql - 从 App Engine 连接到 Google Cloud SQL 时出现 ENOENT

ruby-on-rails - Rails 路线 : Wrong singular for resources

ruby - ActiveRecord 需要 ruby​​ 版本 >= 2.2.2

mysql - SQL查询以匹配具有来自另一个的多行的表

php - INSERT...ON DUPLICATE KEY UPDATE 无法按预期工作

php - activerecord 作为模型,这是个好主意吗?