在'生产'上运行rake任务并指定环境?

时间:2012-02-04 01:20:03

标签: ruby-on-rails rake

我在Linode有一个主机,我正在尝试对其运行Rake任务,但是我收到一个mySQL错误,说它无法连接。看起来它认为它在dev上。我做了一些谷歌搜索,看到我可以做这样的事情:

bundle exec rails c

它加载了开发环境,我无法运行User.all给我一个访问被拒绝错误。

如果我运行bundle exec rails c RAILS_ENV=production,我会收到错误:

Rails.env=production database is not configured (ActiveRecord::AdapterNotSpecified)

但是,如果我通过网络访问它,一切都OK。之前我能够运行rake db:seed所以我知道有一些解决方法。

使用生产凭证访问mySQL可以正常工作。

有什么想法吗?

3 个答案:

答案 0 :(得分:52)

试试这个:

rails c production

或者,在开始时:

RAILS_ENV=production rails c

当你把它放在最后时,它认为你正在传递RAILS_ENV=production作为参数。

答案 1 :(得分:2)

如果您想在Gemfile中当前捆绑包的上下文中运行您的控制台,并确保您使用Gemset:

bundle exec rails c production 

答案 2 :(得分:0)

这对我有用。这取决于您的服务器及其所有依赖项的设置方式:

RAILS_ENV=production bundle exec rails console