Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何编写使用生产环境而不是开发环境的ruby脚本?_Ruby On Rails_Ruby_Ruby On Rails 3.1 - Fatal编程技术网

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

Ruby on rails 如何编写使用生产环境而不是开发环境的ruby脚本?,ruby-on-rails,ruby,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3.1,我编写了一个ruby脚本,它需要config/environment.rb,因此我可以在脚本中使用rails应用程序的所有模型,但问题是我想使用生产环境,而不是开发环境,这似乎是默认行为 Im使用Rails 3.1.1和Ruby 1.9.2 我如何在生产环境下运行脚本?@davidb,我不确定您想要什么也没有rails上那么好,但可能是您可以使用seed.rb(即seed功能)来实现您想要的,如果此脚本只运行一次或有时运行,因为我们可以在运行seed时指定环境 rake db:seed RAIL

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

Im使用Rails 3.1.1和Ruby 1.9.2


我如何在
生产环境下运行脚本?

@davidb,我不确定您想要什么也没有rails上那么好,但可能是您可以使用seed.rb(即seed功能)来实现您想要的,如果此脚本只运行一次或有时运行,因为我们可以在运行seed时指定环境


rake db:seed RAILS_ENV=production

我认为您希望在脚本中使用
RAILS.ENV='production'
ENV['RAILS_ENV']='production'

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

我会非常小心在脚本中覆盖它,因为如果您尝试在另一个环境中运行脚本(例如,登台),并且脚本开始尝试访问生产数据库等,可能会导致很多混乱

你也可以这样做:

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


总的来说;当我登录到一个生产Rails环境时,如果我没有在默认情况下将其配置为“生产”,我会立即更改环境

非常感谢你
RAILS\u ENV=production./script/my awesome script
是唯一适合我的脚本!
export RAILS_ENV=production
./script/my-awesome-script