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

发布于 2024-10-02 02:12:40 字数 62 浏览 0 评论 0原文

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

I have a rails rake task and I want it to ignore what is in database.yml and use something else. How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不顾 2024-10-09 02:12:41

您可以使用 ActiveRecord::Base.assessment_connection 在 Rake 任务中设置数据库连接,如 在这个问题中

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

You can use ActiveRecord::Base.establish_connection to set up a database connection within a Rake task, as described in this SO question.

Or create a separate environment and add the database configuration to database.yml. Then call the rake task with rake mytask RAILS_ENV=myenvironment

﹉夏雨初晴づ 2024-10-09 02:12:41

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

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

You can also have direct access to the database inside a rake task by using this format:

desc "Some task"
task SomeTask: :environment do
  Author.all.each do |author|
    ... some code
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文