【问题标题】:How do I override database connection info for a rake task in rails?如何覆盖 Rails 中 rake 任务的数据库连接信息?
【发布时间】:2010-11-09 02:20:19
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails ruby rake


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-28
        • 2011-09-06
        • 2017-10-04
        • 2015-01-13
        • 1970-01-01
        • 1970-01-01
        • 2022-10-15
        • 1970-01-01
        相关资源
        最近更新 更多