【问题标题】:Ruby on rails specify environment in rake taskRuby on rails 在 rake 任务中指定环境
【发布时间】:2015-03-10 21:30:39
【问题描述】:

我想创建一个自定义的db/seeds 文件并将其传递给特定的环境

desc "Select for bonus"
task :bonus => :environment do
  puts "Bonus for: #{pick(User).name}"
end

是否可以在我的 rake 任务的任务部分指定只说测试环境而不必在我的命令行中运行 RAILS_ENV=test rake

【问题讨论】:

  • 您可以随时使用ENV['RAILS_ENV']="a value" 更改环境,但听起来您需要在 ruby​​ 执行之前设置 RAILS_ENV。

标签: ruby-on-rails ruby rake seed


【解决方案1】:

如果您所做的只是为数据库添加此特定任务,您只需在任务中建立与正确数据库的连接即可。

desc "Select for bonus"
task :bonus => :environment do
  puts "Bonus for: #{pick(User).name}"
  ActiveRecord::Base.establish_connection('test')
  ....
end

上面的ActiveRecord::Base.establish_connection('test') 连接到test 数据库,然后在该数据库上运行其余步骤。

如果您在任务中做很多更复杂的事情,那也是可能的。请参阅How do I force RAILS_ENV in a rake task? 了解一些提示。

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2016-02-13
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    相关资源
    最近更新 更多