如何使 rake 任务在 dev 以外的环境中运行?

Posted

技术标签:

【中文标题】如何使 rake 任务在 dev 以外的环境中运行?【英文标题】:How can I make rake tasks run in an environment other than dev? 【发布时间】:2011-07-26 10:26:09 【问题描述】:

我有一台带有特殊“登台”环境的登台机器。我总是忘记在那台机器上运行 rake 任务,例如:

rake jobs:work RAILS_ENV=staging

所以我最终会这样做:

rake jobs:work

然后我很困惑为什么我的数据库中没有任何变化。嗬!这是因为我不记得提供 RAILS_ENV=staging。

但我永远不需要在该服务器上运行任何东西作为开发环境。如何让 rake 任务默认在“staging”环境中运行?

【问题讨论】:

【参考方案1】:
Rails.env = 'staging'

把它放在你的任务文件中。

【讨论】:

【参考方案2】:

您可以将设置环境变量RAILS_ENV 的行放在一个文件中,该文件将在您登录机​​器​​时运行。例如,我是 bash 用户,所以我会放行

export RAILS_ENV=staging

在 ~/.bashrc(仅适用于我)或 /etc/bashrc(适用于所有登录机器的人)中。

希望这会有所帮助!

【讨论】:

以上是关于如何使 rake 任务在 dev 以外的环境中运行?的主要内容,如果未能解决你的问题,请参考以下文章

在 Elastic Beanstalk 环境中运行 Rails rake 任务

如何从 Rake 任务中运行 Rake 任务?

如何在 Ruby 脚本中运行 Rake 任务?

如何从 Capistrano 运行 rake 任务?

如何在 Rails 中使用环境将参数传递给 Rake 任务? [复制]

如何将命名参数传递给 Rake 任务?