如何编写使用生产环境而不是开发环境的 ruby​​ 脚本?

Posted

技术标签:

【中文标题】如何编写使用生产环境而不是开发环境的 ruby​​ 脚本?【英文标题】:How to write ruby script that uses the production environment instead of development? 【发布时间】:2011-11-16 10:15:30 【问题描述】:

我编写了一个需要 config/environment.rb 的 ruby​​ 脚本,因此我可以在脚本中使用我的 rails 应用程序的所有模型,但问题是我想使用 production 环境而不是 develoment 环境似乎是默认行为。

我正在使用 Rails 3.1.1 和 Ruby 1.9.2

如何在production 环境下运行脚本?

【问题讨论】:

【参考方案1】:

您的脚本将使用环境变量 RAILS_ENV 作为环境。

我会非常谨慎地在脚本中覆盖它,因为如果您尝试在另一个环境中运行您的脚本可能会导致很多混乱 - 例如。 staging - 它开始尝试访问生产数据库等。

要么这样做:

RAILS_ENV=production ./script/my-awesome-script

export RAILS_ENV=production
./script/my-awesome-script

一般来说;当我登录到生产 Rails 环境时,如果我没有将其默认配置为“生产”,我会立即更改环境。

【讨论】:

非常感谢! RAILS_ENV=production ./script/my-awesome-script 是唯一对我有用的!【参考方案2】:

我认为您的脚本中需要Rails.env = 'production'ENV['RAILS_ENV'] = 'production'

【讨论】:

【参考方案3】:

@davidb,我不确定你想要什么在 Rails 上也没有那么好,但如果这个脚本只运行一次或有时作为我们可以在运行种子时指定环境

rake db:seed RAILS_ENV=production

【讨论】:

以上是关于如何编写使用生产环境而不是开发环境的 ruby​​ 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何最有效地编写SQL

Heroku NODE_ENV 为我设置为开发而不是生产

如何让 SwiftUI 应用程序使用 Firebase Functions 模拟器而不是生产环境?

部署时如何告诉 Rails 使用生产数据库(而不是开发数据库)?

如何在生产环境中安装 taglib-ruby

windows下vagrant的安装使用