Disabling Rails SQL query caching globally

Viewed 5225

Is there any way to turn off Rails' SQL query caching globally? Or, at the very least, not use it when i enter a transaction block?

Also, does sql query caching only apply to controller actions, or also to rake tasks or background daemons that i write that include Rails and use my models?

2 Answers

Got it! In application.rb:

config.middleware.delete ActiveRecord::QueryCache

In Rails 5 we can disable active record query cache using the given function as a middleware.

In application_controller.rb add the given code.

around_action :disable_query_cache

def disable_query_cache
    ActiveRecord::Base.uncached do
       yield
    end
end
Related