我想创建一个自定义db/seeds
文件并将其传递给特定环境
desc "Select for bonus"
task :bonus => :environment do
puts "Bonus for: #{pick(User).name}"
end
我的rake任务的任务部分是否可以指定只说测试环境而不必在命令行中运行RAILS_ENV=test rake
?
答案 0 :(得分: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?。