class AddCounterCacheToSamples < ActiveRecord::Migration[4.2] def up add_column :samples, :nr_of_modules_assigned_to, :integer, default: 0 add_column :my_modules, :nr_of_assigned_samples, :integer, default: 0 # Okay, now initialize the values if defined?(Sample) Sample.find_each do |sample| Sample.reset_counters(sample.id, :sample_my_modules) end MyModule.find_each do |my_module| MyModule.reset_counters(my_module.id, :sample_my_modules) end end end def down remove_column :samples, :nr_of_modules_assigned_to remove_column :my_modules, :nr_of_assigned_samples end end