是否可以检查 Rails 环境中正在运行的 rake 任务?
我可以在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论