如何覆盖rails中rake任务的数据库连接信息?

时间:2010-11-09 02:20:20

标签: ruby-on-rails ruby rake

我有一个rails rake任务,我希望它忽略database.yml中的内容并使用其他内容。我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用ActiveRecord::Base.establish_connection在Rake任务中设置数据库连接,如in this SO question所述。

或创建单独的环境并将数据库配置添加到database.yml。然后使用rake mytask RAILS_ENV=myenvironment

调用rake任务

答案 1 :(得分:0)

您还可以使用以下格式直接访问rake任务中的数据库:

desc "Some task"
task SomeTask: :environment do
  Author.all.each do |author|
    ... some code
  end
end