是否可以检查 Rails 环境中正在运行的 rake 任务?

发布于 2024-12-14 08:43:19 字数 818 浏览 0 评论 0原文

我可以在 Rails 初始化程序中利用环境变量来确定 rake 任务是否正在执行吗?就像 -- rake db:migrate db:seed

我有一堆初始化程序,对于大多数 rake 任务可以跳过:

  • 不要加载 spring (这是一个 jruby 项目)
  • 不要加载审计观察者这会破坏迁移

更新:

我稍后可能会后悔——但以下内容似乎有效——

在我的 application.rb 中——添加了以下内容:

config.is_rake = (File.basename($0) == 'rake')

检查该值

config.active_record.observers = :audit_observer unless config.is_rake

然后我稍后会在春天的其他地方 初始化器

SPRING_CONTEXT = org.springframework.context.support.FileSystemXmlApplicationContext.new(SPRING_XML_CONFIG_FILES) unless Rails.application.config.is_rake

基于答案在这里找到

Is there an environment variable I could leverage in my rails initializers to determine if a rake task is executing ? Like -- rake db:migrate db:seed

I have a bunch of initializers that could be skipped for most rake tasks:

  • Don't load spring (it's a jruby project)
  • Don't load the audit observer that breaks the migration

Update:

I'm probably going to regret this later -- but the following seems to work --

In my application.rb -- have added the following:

config.is_rake = (File.basename($0) == 'rake')

Then I am checking for the value later on

config.active_record.observers = :audit_observer unless config.is_rake

Elsewhere in my spring initializer

SPRING_CONTEXT = org.springframework.context.support.FileSystemXmlApplicationContext.new(SPRING_XML_CONFIG_FILES) unless Rails.application.config.is_rake

Based on answer found here

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文